2009-01-18 120 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> 

然後我重新編譯的客戶端應用程序和一切工作。