2012-01-04 80 views
3

我試圖從Silverlight 4中使用ClientHttp Stack調用瀏覽器應用程序中的Restful服務。Silverlight HttpWebRequest在Webservice響應之前拋出404 Not Found異常

var request = (HttpWebRequest)HttpWebRequest.Create(uri); 
request.BeginGetResponse(new AsyncCallback(ExecuteResponseCallback), state); 

我打電話服務需要高達20秒收到請求後做出迴應,但似乎回調方法大約10秒後發射。我可以在Fiddler中看到,該服務最終在200個響應代碼總共30秒後完成請求,但HttpWebRequest回調已收到404 Not Found響應。

我看不出任何理由爲什麼會發生這種情況,Silverlight中的HttpWebRequest上沒有Timeout屬性,所以我不明白爲什麼請求不會無限期地等待響應。

有什麼我做錯了嗎?

回答

0

經過多一點測試,結果發現回調在10秒內被觸發。原來,由註冊表項

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ReceiveTimeout 

安裝IE9 64位,似乎是罪魁禍首,以及該修改這個值一些其他應用程序引起的。解決方案只是簡單地刪除這個註冊表項,一切都很好。

問題也在這裏描述Silverlight ClientHttp WebRequest timeout