C# WCF服务端搭建和客户端调用

Posted 可乐•雪碧•咖啡•茶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# WCF服务端搭建和客户端调用相关的知识,希望对你有一定的参考价值。

1) 打开Visual Studio 2012,在菜单上点击文件—>新建—>项目—>WCF服务应用程序。在弹出界面的“名称”对应的文本框中输入“WcfServiceTest”,然后点击“确定”按钮。

如下图:

2) 把Visual Studio 2012自动生成的两个文件IService1.cs改名为IService.cs接口类、Service1.cs改名为Service.cs实现类。

如下图:

3) 由于Visual Studio 2012默认生成的app.config中的配置信息是以IService来写的配置。

如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.web>
    <compilation targetFramework="4.0" />
  </system.web>
  <system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"  multipleSiteBindingsEnabled="true" />
    <behaviors>
      <endpointBehaviors>
        <behavior name="RestBehavior">
          <webHttp helpEnabled="true" defaultBodyStyle="Bare" defaultOutgoingResponseFormat="Json" />
        </behavior>
      </endpointBehaviors>
      <serviceBehaviors>
        <behavior name="">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <bindings>
      <basicHttpBinding>
        <binding name="BasicHttpBinding_IService" />
      </basicHttpBinding>
      <webHttpBinding>
        <binding name="webHttpBindingConfig" sendTimeout="00:00:40" bypassProxyOnLocal="false"
          maxReceivedMessageSize="652428800">
          <readerQuotas maxStringContentLength="65242880" maxArrayLength="65242880" />
        </binding>
      </webHttpBinding>
    </bindings>
    <services>
      <service name="WcfService.IService">
        <endpoint address="" behaviorConfiguration="RestBehavior" binding="webHttpBinding"
          bindingConfiguration="webHttpBindingConfig" contract="WcfService.IService">
          <identity>
            <dns value="Localhost" />
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>
    <standardEndpoints/>
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
    <!--
        若要在调试过程中浏览 Web 应用程序根目录,请将下面的值设置为 True。
        在部署之前将该值设置为 False 可避免泄露 Web 应用程序文件夹信息。
      -->
    <directoryBrowse enabled="true"/>
  </system.webServer>

</configuration>

4) 右键WcfServiceTest项目选址[发布]。

如下图:

5) 控制面板 - 管理工具 - Internet 信息服务(IIS)管理器 - 选址[网站]节点 添加网站。

如下图:

6) 新建一个测试项目添加服务引用。

如下图:

7) 服务接口调用如下。

            //1.ServiceClient sc = new ServiceClient();
            //2.ServiceClient sc = new ServiceClient("BasicHttpBinding_IService", "http://192.168.99.64:9999/WcfService.Service.svc");
            ServiceClient sc = new ServiceClient();
            string strRst = sc.GetData(100);



以上是关于C# WCF服务端搭建和客户端调用的主要内容,如果未能解决你的问题,请参考以下文章

在 WCF 服务 C# 的服务器端获取客户端的 Mac 地址不重复(在 WCF 3.0 中获取客户端 IP 地址)

C# 编写WCF简单的服务端与客户端

C# 进程通信-命名管道

C# WCF的通信模式

wcf 客户端调用服务端方法和rpc注册中心

如何在WCF的IDispatchMessageInspector中获取调用方法?