小编the*_*ein的帖子

在执行POST时,无法将HttpWebRequest超时设置为高于100秒?

我遇到了一个问题,HttpWebRequest在执行POST时不会尊重超过100秒的超时值.但是,如果请求是GET,则会遵循高于100秒的超时值.在.GetResponse()调用时抛出超时异常.我正在设置我能够发现的所有超时值,但似乎我错过了一个,或者框架中有一个错误.

这是一个针对.NET Framework 3.5的C#应用​​程序,使用Visual Studio 2008构建.Web服务器是IIS 6.0,连接超时设置为默认的120秒,启用了保持活动...再次GET请求尊重超时值I指定,如果<= 100秒,POST请求将遵守超时.

这是我的代码:

int timeout = 200000; // 200 seconds
HttpWebRequest proxyRequest = (HttpWebRequest)WebRequest.Create(serverUrl);
proxyRequest.Accept = clientRequest.AcceptTypes.ToDelimitedString(", ");
proxyRequest.Method = "POST"
proxyRequest.UserAgent = clientRequest.UserAgent;
proxyRequest.Timeout =  timeout;
proxyRequest.ReadWriteTimeout = timeout;
proxyRequest.KeepAlive = false;
proxyRequest.AllowAutoRedirect = false;
proxyRequest.ServicePoint.Expect100Continue = false;
proxyRequest.ServicePoint.MaxIdleTime = timeout;
proxyRequest.ServicePoint.ConnectionLeaseTimeout = -1;

try
{
    // add post data
    request.ContentType = "application/x-www-form-urlencoded";
    byte[] postData = Encoding.UTF8.GetBytes("somedata=7&moredata=asdf");
    // set some post data
    request.ContentLength = postData.Length;
    using (Stream stream = request.GetRequestStream())
    {
        stream.Write(postData, 0, …
Run Code Online (Sandbox Code Playgroud)

c# timeout http-post httpwebrequest

12
推荐指数
1
解决办法
3万
查看次数

标签 统计

c# ×1

http-post ×1

httpwebrequest ×1

timeout ×1