我在编程WCF服务书中检查了流媒体,我发现了一条关于配置的界限。
您需要在每个所需的流模式下在客户端或服务端(或两者)配置绑定
这是什么? 我怎么知道我应该在哪里配置它们? 这是WCF的常见问题吗? 对我来说似乎有些奇怪。
答案 0 :(得分:2)
以下是如何在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部分以及类似的东西,有很多方法可以自定义绑定等。绑定配置可能是您配置流模式的地方。
放置合约界面通常是最佳做法;您的服务和客户实施;如果可以,您可以在单独的DLL中使用DataContract类型(数据传输对象)。如果您无法控制合同(例如,您在无法控制的计算机上访问该服务),生成客户端代码的简便方法是在Visual Studio中使用“添加服务引用”,或者svcutil工具。我喜欢svcutil比添加服务引用更好,因为它可以让您更轻松地控制生成的代码在项目中的最终位置。