搭建一个简单的WCF
一个简单的WCF
项目程序结构:
Client:客户端控制台应用程序,主要调用WCF服务为主
web:WCF服务寄宿宿主
Service:服务,实现契约
Service.Interface:契约,定义服务接口,向外提供方法
此项目WCF服务寄宿以IIS为主,主要实现功能是通过WCF实现用户名验证功能,下面看下web程序中的配置文件(web.config)的内容
<system.serviceModel> <bindings> <wsHttpBinding> <binding> <security mode="None"></security>//关闭安全 </binding> </wsHttpBinding> </bindings> <behaviors> <serviceBehaviors> <behavior name="data"> <serviceMetadata httpGetEnabled="true" />//在实际实际开发中设置为fasle避免用户直接查看服务的内容 <serviceDebug includeExceptionDetailInFaults="true" /> </behavior> <behavior name=""> <serviceMetadata httpGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="false" /> </behavior> </serviceBehaviors> </behaviors> <services>//定义服务 <service name="Service.LoginDAL" behaviorConfiguration="data"> <endpoint contract="Service.Interface.ILoginDAL" binding="wsHttpBinding"/> </service>
</services> <serviceHostingEnvironment multipleSiteBindingsEnabled="true"/> </system.serviceModel>
以上配置文件,只是纯粹的实现WCF服务,不包含权限判断,安全信息,通道等相关内容。
知识点如下:
<service>定义服务,该标签存在于<services>下,通常是一个<service>对应一个契约,介绍下其属性:
name:定义名字,指向实现定义契约的类;
behaviorConfiguration:数据,可自定义名称;
endpoint:终结点,关键是定义该服务的契约,地址,绑定方式,也就是所谓的ABC原则
终结点的定义在这里只是最简单的方式,因为是寄宿于IIS中,所以在配置文件就没有再次指出address的内容,查看contract与binding分别对应的则是"契约",
与wsHttpBinding,监听地址默认为address中定义的地址。绑定方式这里使用的是wshttpbinding,当然你也可以用其他绑定方式等,这里就不在一一列举。
客户端调用非常简单,在添加服务引用之后我们就可以把服务当成类来使用,注意实例化的时候请调用你的服务名字包含Client的类,具体为什么我们下次再
说,代码如下
TestService.TestServiceClient client = new TestService.TestServiceClient(); string isLogin = client.IsLogin("username").ToString();
以上就是一个简单的WCF服务内容,通过WCF提供的客户端测试工具,我们可以测试数据通过返回值进行数据判断,将web发布至IIS后,通过同事的电脑
也能够正常进行访问。
好了今天的内容就到这里,由于本人是新手,有不对的地方还请海涵,高手指出大家一起进步