Web请求失败504

时间:2017-11-06 16:50:33

标签: c# asp.net-mvc httpwebrequest http-status-code-504

我有以下代码:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);            

request.Proxy.Credentials = CredentialCache.DefaultCredentials;
request.Method = "GET";

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

using (Stream dataStream = response.GetResponseStream())
using (StreamReader reader = new StreamReader(dataStream))
{                
    string responseFromServer = reader.ReadToEnd();                
    System.Diagnostics.Debug.WriteLine(responseFromServer);
    System.Diagnostics.Debug.WriteLine(response.StatusDescription);
}
  • 相关服务使用NTLM身份验证。
  • 粘贴到Chrome中的上述URI会返回预期结果。
  • 鉴于相同的Uri,此代码在控制台应用程序中正常工作。
  • 然而,放入一个完全香草(即直接从模板中添加一个动作添加到控制器)MVC应用程序,它失败并出现504错误。
  • 如果我打开Fiddler尝试捕获正在进行的操作,它可以在MVC应用程序中运行。

我的猜测是,Fiddler导致这个工作,因为它会用自己覆盖代理;但是,我的印象是运行上面的代码与将URI粘贴到浏览器中的行为相同。

我还猜测超时实际上是用词不当,而且它根本就没有与服务器协商(尽管我无法验证该理论)。

鉴于使用Fiddler更改了请求的行为,我该如何调试此问题?

编辑:

根据@Alex Seleznyov的建议,我尝试运行Microsoft Message Analyzer。看起来很像问题是,在Web应用程序下运行时,代码不是首先联系我们的内部代理,而是通过控制台应用程序。

0 个答案:

没有答案