我的WCF学习(一)

由于项目当中用到了WCF,所以就简单的学了一些相关的知识,先不上基础知识了,先把自己做的第一个WCF和大家一起分享一下。

1.首先,建立了一个普通的空网站,用来做宿主。

2.在网站中新建了一个文本文件,具体如下图:

然后把它命名为“UserService.svc”。偷笑,其实里面只有一句话,如下:

<%@ServiceHost Debug="true" Service="Contract.UserServiceContract"%> ,具体指出服务契约所在的方法实现类。

3.下面开始我们疯狂的服务器端配置。

 <system.serviceModel>
    <!-- 以下手工配置 -->
    <serviceHostingEnvironment >
      <serviceActivations>
        <add relativeAddress="UserService.svc" service="Contract.UserServiceContract" />
      </serviceActivations>
    </serviceHostingEnvironment>
    <bindings>
      <basicHttpBinding>
        <binding name="basicHttpBindingCfg" closeTimeout="00:01:00" openTimeout="00:01:00"
                 receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false"
                 hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288"
                 maxReceivedMessageSize="2147483647" messageEncoding="Text"
                 textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <security mode="None">
            <transport clientCredentialType="None" proxyCredentialType="None" realm="" />
            <message clientCredentialType="UserName" algorithmSuite="Default" />
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
    <services>
      <service name="Contract.UserServiceContract" behaviorConfiguration="ServiceBehavior">
        <endpoint binding="basicHttpBinding" contract="Contract.IUserService">
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="ServiceBehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
        <behavior name="">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <!-- 以上手工配置 -->
  </system.serviceModel>

这个配置的具体东西我也不是很清以后再补点基础知识,这上配置文件是我根据项目中的和博客园里网友的大作:http://www.cnblogs.com/haiyu/archive/2009/12/15/1625057.html

配置成功的。

服务器端的配置到此就结束了,其实这个配置我还是花了一定时间的,也是自己粗心吧,把服务契约的类名写错了。大哭一个小时的挣扎,终于配好。

下面进行第二步,WCF的实现。

1.契约分两块,服务契约和数据契约

先说我的数据契约(UserDataContract.cs),这个比较简单。

没什么特别的,就是实体类“穿上马甲”。

再说服务契约(IUserService.cs);

也没有什么特别的,是新建了一个接口类,然后改装一个,加了个“马甲”,就变成上图中所示的了,其中Name,和Namespace是我自己随便写的。

下面就是对接口的实现。

上图中可以很清楚地看到对服务契约的实现。

下面就是调用WCF。

1.首先,建立一个控制台程序。

2.客户端添加服务引用,如下图:

记得改一下命名空间。

下面是客户端的配置。

应该是引用进来WCF之后会自动生成的,不过要改一改接收的虚拟BufferSize.

下面是调用的地方。

下面看看结果了:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值