Applies ToWindows 7 Enterprise Windows 7 Enterprise N Windows 7 Professional Windows 7 Professional N Windows 7 Ultimate Windows 7 Ultimate N

狀況

在電腦上正在執行 Windows 7,您將會遭遇下列一或多個下列的徵狀。徵狀 1請考慮下列情況:

  • 您會執行非同步 Web 服務在伺服器上使用 Microsoft.NET Framework 2.0 的 Service Pack 2 (SP2)。

  • HttpWebRequest非同步作業會將 Web 要求傳送到 Web 服務。

  • Web 服務會擲回例外狀況。

在這個案例中, HttpWebRequest的非同步作業不會呼叫BeginGetResponse方法或回呼函式。然而,意外完成HttpWebRequest非同步作業。然後 Web 服務會停止回應。此外,在伺服器上的 CPU 使用率可能增加至 100%,然後伺服器會停止回應。徵狀 2請考慮下列情況:

  • 您執行 Microsoft.NET Framework 2.0 SP2 基礎的應用程式呼叫 Web 服務使用 Microsoft ASP.NET Web 服務用戶端元件。例如,應用程式程式碼會產生由 Wsdl.exe 處理序或應用程式會呼叫SoapHttpClientProtocol類別。

  • 用戶端會以非同步方式叫用 Web 服務呼叫。

  • 用戶端傳送要求至伺服器。

  • 然後在用戶端會收到 Web 回應包含長度為零的內容。

當 Web 服務會嘗試處理此回應,在這個案例中時,會擲回System.ArgumentNullException例外狀況。然後,您會收到下列錯誤訊息︰

值不可為 null。

注意當用戶端以同步方式叫用 Web 服務呼叫時,就不會發生這個問題。

原因

徵狀 1之所以發生這個問題,是因為.NET Framework 的例外處理不會考慮當該例外狀況包含伺服器的回應會產生例外狀況的HttpWebRequest.EndGetRequestStream方法的情況。

解決方案

Hotfix 資訊

已經可以從 Microsoft 取得支援的 hotfix。不過,其旨在修正本文所描述的問題。它只適用於發生此特定問題的系統上。若要下載此 hotfix,請造訪下列 Microsoft 連線的網站︰

http://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=27977

狀態

Microsoft 已確認這是<套用>一節所列出的 Microsoft 產品的問題。

更多的資訊

如需有關 「 徵狀 1 > 一節所述的問題的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件︰

973134修正︰ Web 服務可讓您停止回應,並且當您執行.NET Framework 2.0 S 型非同步 Web 服務時,會擲回例外狀況如需有關 「 徵狀 2 > 一節所述的問題的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件︰

修正973136 : ArgumentNullException 的例外狀況錯誤訊息時,.NET Framework 2.0 S 為基礎的應用程式嘗試處理非同步 ASP.NET Web 服務要求的回應以長度為零的內容:"值不可為 null"

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。