2012-01-16 96 views
0

我有一組在IIS7託管WCF服務。我正在將服務移至其他文件夾,以便開始在URL中指定版本和環境。例如:身份檢查在IIS中的問題託管WCF服務

http://myserver/MyServices/ServiceA.svc 

變爲:

http://myserver/MyServices/QA/1.1.0/ServiceA.svc 

我配置了新的文件夾是在IIS的應用程序,並設置它,我們一直在使用相同的服務應用程序池下運行。具有所有工作得很好,我能夠瀏覽到我的.svc URL並查看WSDL或開拓WCF測試客戶端的端點。然而,試圖使用該服務時,我收到以下錯誤:

身份校驗失敗傳出消息。預期的身份是 '身份(http://schemas.xmlsoap.org/ws/2005/05/identity/right/possessproperty:http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn)' 爲「HTTP://myserver/MyServices/QA/1.1.0/ServiceA .svc'目標端點。

當我檢查了WSDL輸出,我注意到標識部分似乎離開了應用程序池,它通常包括的身份:

<Identity xmlns="http://schemas.xmlsoap.org/ws/2006/02/addressingidentity"> 
<Upn>[email protected]</Upn> 
</Identity> 

試圖重新部署和重新配置應用在後在IIS中,我只能獲取身份以顯示在部分服務的元數據中。其他服務仍然不包括它,這比以前更加奇怪。據我所知,原始堆棧和IIS中的新堆棧之間的配置差異爲零。我可能會遇到什麼樣的問題會導致這些類型的身份問題?

+0

邁克你好,本文着眼有用。 http://msdn.microsoft.com/en-us/library/ms733130.aspx。任何可能導致配置應用程序池時出現問題?它是否自行回收,並且它是否在系統帳戶下運行? – 2012-01-16 17:35:24

回答

0

該問題是由於嘗試將新的服務堆棧Web應用程序嵌套到現有服務堆棧Web應用程序中造成的。我認爲,當子應用程序中的服務將端點暴露給與根Web應用程序相同的合約(儘管在理論上這應該工作得很好)時,這可能會對IIS造成一些混淆。我只需將新服務堆棧移動到單獨的文件夾結構中。一旦我這樣做了,我就沒有問題讓應用程序池標識在元數據中公開。