连接到WebRequest的AsyncCallback永远不会到达

问题描述:

我有一个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状态代码。它完美的工作,如果我通过浏览器调用完全相同的网址,但!现在有些人更关注搜索现在给我解决方案。

在响应中找出401 Unauthorized状态代码后,我设法在这里的SO这让我解决我的(因为它原来)小事添加此找到其他答案:

request.UseDefaultCredentials = true;