C# 服务器未响应WebRequest

C# 服务器未响应WebRequest,c#,httpwebrequest,httpwebresponse,C#,Httpwebrequest,Httpwebresponse,我应该写一些网站的工作程序。它使用HttpWebRequest和HttpWebResponse从服务器向\发送和接收数据。首先,我的程序在此网站上授权,然后准备数据并发送。当我在开发者的PC上运行我的程序时,它工作得很好,没有任何问题,但当我的程序在客户端的PC上运行时,它就不工作了。我远程连接到客户端的PC以获取程序日志,并将其与我的日志进行比较。客户是我们的合作伙伴,他给我他的测试密码。好的,我比较了日志,它是一样的!唯一的区别是对最后一个请求的响应:在我的PC上我收到html页面,但客户端

我应该写一些网站的工作程序。它使用HttpWebRequest和HttpWebResponse从服务器向\发送和接收数据。首先,我的程序在此网站上授权,然后准备数据并发送。当我在开发者的PC上运行我的程序时,它工作得很好,没有任何问题,但当我的程序在客户端的PC上运行时,它就不工作了。我远程连接到客户端的PC以获取程序日志,并将其与我的日志进行比较。客户是我们的合作伙伴,他给我他的测试密码。好的,我比较了日志,它是一样的!唯一的区别是对最后一个请求的响应:在我的PC上我收到html页面,但客户端的PC生成超时异常。首先,我想,问题是客户端的防火墙,但我的程序如何获取身份验证的cookie和会话的id信息呢?我输出了WebRequest的所有参数并进行了比较,但正如我前面所说的一样


有谁能告诉我,这个错误的原因是什么?我如何解决它?

我曾经在使用Win XP和我的客户使用Vista时遇到过同样的问题。这些webrequest和WebResponse调用在内部转换为SOAP调用,并使用一个internet explorer dll进行传输。XP中的默认超时为>Vista请求的默认超时。在与客户的基础设施团队讨论后,我们更改了超时时间,这就是问题的解决方法。默认超时为100秒

如果没有代码,这将非常困难,您应该有一些错误处理和验证来帮助确定错误的位置。例如:

HttpWebRequest request = WebRequest.Create(@"http://stackoverflow.com") as HttpWebRequest;
request.Credentials = NetworkCredentials(@"username", @"password");
request.Timeout = 300;

if(string.IsNullOrEmpty(request))
     throw new Exception("Error in Request");

using(var stream = request.GetResponse().GetResponseStream())
     using(var writer = File.Create(Environment.GetFolderPath(Environment.SpecialFolder.Desktop))
          stream.CopyTo(writer);
我强烈建议使用Fiddler或浏览器来分析响应/请求。它应该向你展示这些细节的大部分


如果没有代码,我们就无法提供更多帮助。

你应该发布你的代码。我知道,这就是为什么我手动将超时设置为120000ms,并且操作系统是相同的。我的代码是相同的,但是我手动添加了一些头和cookie。我已经用小提琴了。这真的是一个很棒的程序,我的程序是用Fiddler(网站没有官方API)的数据编写的。上面的代码运行得很好。尝试获取您试图请求的内容,如果失败,则可能是应用程序之外的问题。如果它工作,那么您的API就有问题了。谢谢您的帮助,但我已经说过,我向同一个客户的url(客户的url是“http:\\site.com\1234”,我使用的url是“http:\\site.com\1234”)发出请求,并使用他的登录名和密码。我得到html页面,但客户端有异常。在我的电脑上,我通过代理使用internet,客户端连接到internet,但我没有手动设置代理的设置,我的程序使用默认设置。非常感谢,我忘了关闭响应流。我不知道怎么做,但是在我的电脑上Fiddler会自动关闭它,但是用户的电脑上没有Fiddler。。。当我刚刚在读取操作后添加:responseStream.Close()时,服务器开始响应所有请求。@Mixim是的,这就是为什么我使用
using
来使用
的原因,所以一旦它离开它实现的
IDispose
范围。