2009-01-18 78 views
0

原始问题(下文)的解决方案可能已被发现。我注释掉了“WCF入门”MSDN教程问题

<identity> 
    ... 
</identity> 

标记在客户端的app.config文件中。但我不确定这是否会导致其他问题,如果有,有人可以告诉我吗?


我一直在关注WCF的MSDN上的Getting Started tutorial

我在Vista x64上使用Visual Studio.net 2008。服务程序运行得很好。但是,客户有问题。

当我运行客户端,我得到这个异常:

SecurityNegotiationException了未处理 SOAP安全协商与 'http://localhost:8000/ServiceModelSamples/Service/CalculatorService' 为目标 'http://localhost:8000/ServiceModelSamples/Service/CalculatorService' 失败。 有关更多详细信息,请参阅内部例外。

内部异常消息称:

“的安全支持提供程序接口(SSPI)协商失败。”

我的代码与例子几乎完全一样。我从来没有真正做过任何关于Web服务或WCF或类似的东西。任何人都知道我该如何解决这个问题?谢谢。

编辑 - 我忘了提,其中抛出异常...... 在客户端的主要方法:

CalculatorClient client = new CalculatorClient(); 

double value1 = 100.00; 
double value2 = 15.99; 
double result = client.Add(value1, value2); //This is the line that throws the error 

//... 

我加client.Open();在客户端初始化之后,因为我搜索了Google,并且有人也遇到了问题并且帮助了他,但是当我这样做时,新的产品线上也会出现同样的异常。

回答

2

SSPI失败是与Kerberos相关的安全协商失败。您是否在域上,并且您现在可能无法与域控制器通信?或者还有另一个原因,您目前无法验证身份?

+0

是的,这台笔记本电脑在学校的领域,我在家里。那是什么错误?我将如何解决这个问题? (除了显而易见的,连接到域,因为当我不在学校时,这是不可选的) – Joel 2009-01-18 08:09:56

0

在服务合同属性添加以下行

[ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")] 
0

我也有过这样的错误。在我的情况下,它是由客户端上的Web.config文件中的<identity>部分引起的。当我从TFS获得文件时,在<userPrincipalName value="[email protected]" />部分有一个条目被别人的ID值覆盖。这个条目基本上标识你,所以如果你在网络上,这应该匹配你的网络登录ID。

0

我就遇到了这个错误也同时遵循微软的教程http://msdn.microsoft.com/en-us/library/ms734712.aspx

我的笔记本电脑连接到一个域是不可用的时刻。根据我在这里找到的内容,我进入了客户端app.config文件并通过删除userPrincipleName来解决问题。

此:

  <identity> 
       <userPrincipalName value="[email protected]" /> 
      </identity> 

变成了:

  <identity> 
      </identity> 

然后我重新编译的客户端应用程序和一切工作。