我有一個ASPX頁面,它應該異步檢索一些內容(一些純文本數據),並在操作之前/期間/之後寫入內容。連接到WebRequest的AsyncCallback永遠不會到達
目前,我可以到達「正在執行」步驟,但頁面內容不會在之後發生變化。
最大的問題是我不能執行任何一種調試由於基礎設施(MIS)配置上並沒有被允許運行遠程調試工具,我都要靠出版,看看會發生什麼...
後面的代碼看起來是這樣的(這是一個.NET 3.5(改變目標框架是不一個選項)項目在VS2008中創建,後來升級到VS2010)
void Page_Load()
{
myLabel = "Preparing to fetch content ...";
FetchContent();
}
void FetchContent()
{
try {
// "http://myUrl" returns text with header 'Content-disposition: inline;'
// If called directly, Text can be seen in the browser alright.
WebRequest request = WebRequest.Create("http://myUrl");
myLabel = "Fetching ...";
request.BeginGetResponse(new AsyncCallback((result)=>
{
//EXCEPTION HERE: 401 Unauthorized ??? url works via browser!
WebResponse resp = request.EndGetResponse(result);
StreamReader stream = new StreamReader(resp.GetResponseStream());
myLabel = "Done";
}
} catch {myLabel = "Request KO"; }
}
在AS PX代碼,myLabel
簡單示:
<body>
<pre><%=myLabel %></pre>
</body>
的網址很快,如果從瀏覽器調用響應,但在此代碼myLabel
從未顯示Done.
,它停留在Fetching...
文本,如回調從來沒有發射。
我在這裏錯過了一些明顯的東西嗎?
UPDATE
仔細檢查發現,EndGetResponse
返回401 Unauthorized
狀態代碼。它完美的工作,如果我通過瀏覽器調用完全相同的網址,但!現在有些人更關注搜索現在給我解決方案。