WCF对SSPI的调用失败,'目标主体名称不正确'

时间:2017-02-01 05:37:25

标签: wcf wcf-binding wcf-security

我收到这个可怕的消息并花了很多时间阅读它但仍然无法解决它

我的客户端上运行的控制台应用程序尝试在另一台计算机上调用WCF服务。该服务在域帐户下运行。我相信在这种情况下,它会尝试使用Kerberos进行身份验证

我还读过,如果你在客户端提供虚拟服务主名

<servicePrincipalName value="MySystem/Service1"/>

然后它将回归到使用ntml。

我没有运气就试过这个。如果客户端与服务在同一台机器上,那么它可以正常工作。不确定我还能尝试什么。这是我客户端的配置

<system.serviceModel>
    <bindings>
      <netTcpBinding>
          <binding name="NetTcpBinding_HelpersService" />
      </netTcpBinding>
    </bindings>
    <client>
        <endpoint address="net.tcp://myserver/SPInterface/HelpersService.svc/TCP" binding="netTcpBinding" bindingConfiguration="NetTcpBinding_HelpersService"
    contract="HelpersService" name="NetTcpBinding_HelpersService">
           <identity>
             <servicePrincipalName value="MySystem/Service1"/>
           </identity>
       </endpoint>
    </client>
</system.serviceModel>

我也不明白,如果我在Visual Studio中使用WCFTestClient从本地机器生成相同的配置文件,它可以正常工作

我的服务器配置文件包含: -

<system.serviceModel>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true">
       <serviceActivations>
        <add relativeAddress="HelpersService.svc" service="SPInterface.Models.HelpersService" factory="SPInterface.WebService.HelpersServiceHostFactory"/>
        </serviceActivations>
    </serviceHostingEnvironment>
    <services>
        <service name="SPInterface.Models.HelpersService" behaviorConfiguration="Debug">
            <endpoint address="TCP" binding="netTcpBinding" bindingNamespace="http://Server/SPInterface/Services" contract="SPInterface.Contracts.IHelpersService"/>
            <endpoint address="Rest" binding="webHttpBinding" bindingNamespace="http://Server/SPInterface/Services" contract="SPInterface.Contracts.IHelpersService" behaviorConfiguration="Rest"/>
       </service>
    </services>
</system.serviceModel>

内部异常是&#34;目标主体名称不正确&#34;

0 个答案:

没有答案