我对此感到困惑,我正在调用一个简单的报表服务器网址来返回报表的PDF,但奇怪的是WebRequest.GetResponse
方法并没有返回任何内容,当我这样说时,我的意思是代码只是在那一刻停止执行,没有异常,没有错误,没有状态代码,没有事件查看器登录服务器,没有!所以我无法调试它
这是我的代码
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.PreAuthenticate = true;
req.UseDefaultCredentials = true;
req.Credentials = CredentialCache.DefaultNetworkCredentials;
req.ImpersonationLevel = TokenImpersonationLevel.Impersonation;
req.Timeout = int.MaxValue;
Log.Write("Log before");
var response = req.GetResponse();
Log.Write("Log after");
它只打印Log before
日志,之后没有打印任何内容。
当我在visual studio中运行时,这段代码运行得非常好,当它在开发和测试服务器中部署时停止工作!
我只是期望它至少通过异常或返回未经授权或任何其他状态代码,然后我将能够调试该问题。
我可以尝试调试它的任何建议吗?
答案 0 :(得分:2)
您是否尝试过24天20小时31分24秒?换句话说,只要您将超时设置为?
,您是否已离开它?服务器没有返回响应,代码正在等待int.MaxValue毫秒来告诉你。最可能的原因是客户端和服务器之间存在一个停止请求的网络基础结构。这可能是防火墙或代理。它也可能是由服务器不喜欢请求并拒绝回复引起的。
我会尝试的事情: