2011-06-20 57 views
1

我們有一個採用「用戶名:密碼」授權標頭的WCF Web服務。此服務在我的開發Windows 7計算機和生產中的Windows Server 2003計算機上正常工作。在IIS 7上調用WCF Web服務時缺少授權標頭

但是,我們的開發和新的生產服務器是Windows Server 2008,並且該服務無法接收授權標頭。

您可以看到下面來自Fiddler的原始請求包含Authorization標頭。

POST http://servername/service.svc/soap HTTP/1.1
內容類型:文本/ XML;字符集= UTF-8
授權:測試:測試
VsDebuggerCausalityData:uIDPozpQ7mbpOVRFu79Tl0h3mkIAAAAAJMavDzJlIkqyjJDSIIxdVuKNB0y6n29OvukFtyRt0wwACQAA
的SOAPAction: 「......」
主持人:服務器
的Content-Length:152
期望:100繼續
接受-Encoding:gzip,deflate
連接:Keep-Alive

我沒有成功啓用IIS高級日誌記錄來查看是否可以在服務器上獲得任何額外的信息。

IIS網站配置爲匿名身份驗證。

的服務實現IAuthorizationPolicy評估方法肯定是被調用,這是授權信息丟失在哪裏。

感覺就像我在IIS中配置了錯誤的東西,但我不知道是什麼!任何幫助將非常感激。

+0

從Windows Server 2003切換到2008時,您是否也從IIS 6切換到了7?如果是這樣,我懷疑這與IIS版本有很多關係,而不是Windows Server版本。你可以考慮相應地改變你的問題的標題。 – Aaron

+0

好點。我之前的同事也告訴我,他的服務原來是在Windows Server 2008服務器上開發的。這隻會讓這更令人沮喪。 – RichardM

+0

確保IIS服務器處理基本授權,我認爲它默認是禁用的。 –

回答

0

事實證明,我正在處理兩個不同的問題。

在開發服務器上,我發現.NET 4.0安裝已損壞。這是由這brilliant tool診斷。

在兩臺服務器上,我改變了管道模式從經典綜合,因爲沒有人知道爲什麼它被擺在首位設置爲經典。稍後稍微調整Web配置,並且服務正在運行!

該解決方案也可能具有必需的基本身份驗證,正如Richard L所建議的那樣,因爲這是生產服務器中缺少的。請注意,服務網站上未啓用基本身份驗證。

一個非常令人沮喪的幾天試圖讓這個工作。