使用.net 2.0调用远程WCF服务

来源:互联网 发布:java微信怎么登陆 编辑:程序博客网 时间:2024/05/22 14:34

使用.net 2.0调用远程WCF服务,即把WCF服务当成一个web service服务来调用。但是因为WCF封装问题,特别是发布到远程服务器上的WCF,使用客户端调用还真出现不少问题。

下面用三个方面来阐述这个问题:WCF服务端、生成客户端代理文件、出现的问题

一、WCF服务端

因为使用的是2.0调用WCF服务,所以把binding配置成basicHttpBinding,即使用简单的HTTP协议进行服务调用。

1、配置文件:

把WCF配置成相应的binding,在发布前可先不管地址问题

<system.serviceModel><services>   <service behaviorConfiguration="NWS.WCFService.Service1Behavior" name="NWS.WCFService.NWSService">     <host>       <baseAddresses>         <add baseAddress="http://localhost:5678/NWSService.svc" />       </baseAddresses>     </host>    <endpoint address="" binding="basicHttpBinding" contract="NWS.Interface.INWSService">     <identity>      <dns value="localhost" />     </identity>    </endpoint>    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />   </service>  </services><behaviors><serviceBehaviors><behavior name="NWS.WCFService.Service1Behavior"><!-- 为避免泄漏元数据信息,请在部署前将以下值设置为 false 并删除上面的元数据终结点--><serviceMetadata httpGetEnabled="true"/><!-- 要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息--><serviceDebug includeExceptionDetailInFaults="false"/></behavior></serviceBehaviors></behaviors></system.serviceModel>


2、程序业务逻辑:

这里省略,可自己想像一个业务需求,假如一个下载配置文件的需求,方法名为DownloadConfig()

3、测试本地WCF服务:

使用WCFTestClient工具。

VS命令提示工具(2008以上),输入:

这时会弹出WCF客户端测试工具

使用VS自带的测试工具,将能快速高效的完成WCF服务的测试。


二、生成代理类

1、wsdl生成

打开visual studio 2008 命令提示工具,定位到放置代理类文件的路径,在本例中使用的是d盘。

输入以下命令:

wsdl http://localhost:5678/networkspeedservice.svc?wsdl

系统提示正在写入文件,如下图。


其实这个方法生成的代理类,将以webservice的SOAP协议去请求WCF服务,所以WCF只能使用的协议是basic模式。但这个在.net 2.0的应用程序开发过程中,却是很有用的一种办法。


2、svcutil生成WCF客户端代理类与配置文件

除了使用基本的WSDL的方式访问WCF服务外,.NET 3.0以上的应用程序,可以使用svcutil的命令生成WCF客户端调用代理,并会生成一个配置文件。


把生成的代理类融入项目中即可调用WCF服务了。


三、出现的问题

额,因为这草稿放好几年了,忘了这边有什么问题了。等想起来再补上吧。




原创粉丝点击