-1
var client = new CommonClient()
XElement exceptionDates = XElement
    .Parse(client.ExceptionDatesUpdateControl("status").OuterXml);

调用时:

client.ExceptionDatesUpdateControl("status")

抛出以下错误:

SecurityNegotiationException:对 SSPI 的调用失败

原因是什么?

附加信息:

网络配置:

<system.serviceModel>
    <bindings>
      <netNamedPipeBinding>
        <binding name="NetNamedPipeBinding_ICommon" />
      </netNamedPipeBinding>
    </bindings>
    <client>      
      <endpoint address="net.pipe://localhost/service/common" binding="netNamedPipeBinding" bindingConfiguration="NetNamedPipeBinding_ICommon" contract="Service.Common.ICommon" name="NetNamedPipeBinding_ICommon">            
      </endpoint>
    </client>

应用程序配置:

<services>
      <service name="PROJ.Service.CommonService" behaviorConfiguration="CommonServiceBehavior">
        <host>
          <baseAddresses>            
            <add baseAddress="net.pipe://localhost/service/common"/>
          </baseAddresses>
        </host>            
        <endpoint
             address="net.pipe://localhost/service/common"
             binding="netNamedPipeBinding"
             bindingConfiguration="pipeCommonServiceBinding"
             contract="PROJ.Service.ICommon"
             />
4

2 回答 2

0

我找到了答案。
当我深入研究时,还有另一个异常:“Security.Authentication.AuthenticationException”。

当我在配置文件中注释这些行时它消失了:

 <!--identity>
      <servicePrincipalName value="host/..." />
    </identity-->
于 2013-11-19T05:30:37.073 回答
0

在以下情况下可能会发生此异常:

• 在协商初始安全上下文时。确切的错误取决于所使用的协商技术:简单和受保护的 GSS-API 协商 (SPNEGO) 或 TLSNEGO。有关详细信息,请参阅安全协议。

• 在初始安全上下文之上建立安全会话时。

• 在现有安全会话的密钥更新期间。

安全协商错误可能作为 Spnego/Sslnego 安全协议的一部分或 SecureConversation 协议的一部分发生。

来源:MSDN

于 2013-11-13T10:27:43.007 回答