当我在客户端的c#代码中设置nettcpbinding时,如何动态将安全模式设置为NONE,而在服务器上我的绑定是在app.config中定义的?如何从客户端更改服务器的app.config?
WCF服务器端点:
<service name="Test.ServiceProvider.MyService">
<endpoint address="" binding="netTcpBinding" contract="Test.Contracts.IMyService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexTcpBinding" name="NetTcpMetadataPoint"
contract="IMetadataExchange">
</endpoint>
</service>
WCF客户端端点: Uri是:
net.tcp//localhost:12345/MyService
1.) What else should my 2nd address be for the 2nd NetTcpBinding?
I guess I just change the MyService to MyEncryptedService and use the same interface? But then I have 2 equal classes/implementations of one interface. Thats stupid actually.
2.) How does the client binding find its server binding?
答案 0 :(得分:2)
总之,你不能。服务器公开服务,服务器指示其安全设置。它要么需要安全性,要么不需要安全性,但是这种配置是在服务器开始托管服务时完成的,并且在不“停止”服务的情况下无法更改。从客户端更改它的唯一方法是通过一些“管理”,它将改变服务的配置并重新启动它,但这将具有全局范围。
如果您需要安全通信和不安全通信,则需要公开两个不同的端点。一个用于安全操作,一个用于不安全操作(如果两个端点上的操作不同,则还应使用不同的服务合同)。