2012-06-08 98 views
0

我有一個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狀態代碼。它完美的工作,如果我通過瀏覽器調用完全相同的網址,但!現在有些人更關注搜索現在給我解決方案。

回答

1

在響應中找出401 Unauthorized狀態代碼後,我設法在這裏的SO這讓我解決我的(因爲它原來)小事添加此找到其他答案:

request.UseDefaultCredentials = true; 
相關問題