从wcf客户端更改服务器app.config绑定配置

时间:2012-04-12 13:16:45

标签: c# wcf wcf-client

当我在客户端的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?

1 个答案:

答案 0 :(得分:2)

总之,你不能。服务器公开服务,服务器指示其安全设置。它要么需要安全性,要么不需要安全性,但是这种配置是在服务器开始托管服务时完成的,并且在不“停止”服务的情况下无法更改。从客户端更改它的唯一方法是通过一些“管理”,它将改变服务的配置并重新启动它,但这将具有全局范围。

如果您需要安全通信和不安全通信,则需要公开两个不同的端点。一个用于安全操作,一个用于不安全操作(如果两个端点上的操作不同,则还应使用不同的服务合同)。