我正在查看 Programming WCF Services 书中的流式传输,并且发现了关于配置的一行。
您需要根据所需的流模式在客户端或服务端(或两者)配置绑定
那么这是什么?我怎么知道我应该在哪里配置它们?这在 WCF 中很常见吗?对我来说似乎有点奇怪。
我正在查看 Programming WCF Services 书中的流式传输,并且发现了关于配置的一行。
您需要根据所需的流模式在客户端或服务端(或两者)配置绑定
那么这是什么?我怎么知道我应该在哪里配置它们?这在 WCF 中很常见吗?对我来说似乎有点奇怪。
这是一个关于如何在 web/app.config 中配置 WCF 服务的非常基本的示例:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
<service name="MyServiceTypes.MyService" >
<endpoint address="http://localhost:55555/MyService"
binding="basicHttpBinding"
contract="MyServiceTypes.IMyService" />
</service>
</services>
</system.serviceModel>
</configuration>
在客户端,您希望使用完全相同的端点设置,如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<client>
<endpoint address="http://localhost:55555/MyService"
binding="basicHttpBinding"
contract="MyServiceTypes.IMyService" />
</client>
</system.serviceModel>
</configuration>
通过添加 bindingConfiguration 部分和类似的东西,有很多方法可以自定义绑定等。绑定配置可能是您配置流模式的位置。
放置合约接口通常是最佳实践;您的服务和客户端实现;如果可以的话,将您的 DataContract 类型(您的数据传输对象)放在一个单独的 DLL 中。如果您无法控制合同(例如,您正在访问您无法控制的机器上的服务),生成客户端代码的简单方法是使用 Visual Studio 中的“添加服务引用”,或者svcutil 工具。与添加服务引用相比,我更喜欢 svcutil,因为它可以让您更轻松地控制生成的代码在项目中的最终位置。