采用NetTcpBinding绑定方式,一旦跨主机就会提示:服务器已拒绝客户端凭据

需要在Host和Client的App.config中进行一下安全配置:

一、Host App.config配置

粘上完整的:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <services>
      <service name="TESTWCF.MyData.MyDataService" behaviorConfiguration="serviceBehavior">
        <endpoint binding="netTcpBinding" contract="TESTWCF.MyData.IMyDataService" address="MyData"  bindingConfiguration="Binding1"  />
        <host>
          <baseAddresses>
            <add baseAddress="net.tcp://192.168.0.2:8123"/>
          </baseAddresses>
        </host>
      </service>
    </services>
    
    <bindings>
      <netTcpBinding>
        <binding name="Binding1">
          <security mode="None">
            <transport clientCredentialType="Windows" />
            <message clientCredentialType="Windows" />
          </security>
        </binding>
      </netTcpBinding>
    </bindings>
    
    <behaviors>
      <serviceBehaviors>
        <behavior name="serviceBehavior">
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

 

其中下面的为增加的:

    <bindings>
      <netTcpBinding>
        <binding name="Binding1">
          <security mode="None">
            <transport clientCredentialType="Windows" />
            <message clientCredentialType="Windows" />
          </security>
        </binding>
      </netTcpBinding>
    </bindings>

并且要在EndPoint后增加 :bindingConfiguration="Binding1"

到此服务端配置完成

二、Client App.config配置

在EndPoint后增加:bindingConfiguration="Binding1"

并把上面<bindings> …</bindings> 复制过去。

 

这样即可跨主机通讯了。

MSDN:http://msdn.microsoft.com/zh-cn/library/ms731343.aspx

posted on 2009-06-30 17:29  老白  阅读(1143)  评论(1编辑  收藏  举报