【发布时间】:2011-01-16 04:51:34
【问题描述】:
谷歌搜索了几天后,我真的无法解决所描述的问题。希望这里能找到解决办法
我在同一台服务器上调用 WCF 服务时使用了附加代码。我在调用 WebReq.GetRequestStream() 时随机收到超时错误
当我检查 netstat 时,我看到连接仍然打开,所以可能有问题,但我不知道如何解决它
//request inicialization
HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(url);
WebReq.Method = "POST";
WebReq.ContentType = "application/json; charset=utf-8";
WebReq.ContentLength = buffer.Length;
WebReq.Proxy = null;
WebReq.KeepAlive = false; //also tried with true
WebReq.AllowWriteStreamBuffering = false; //also tried with true
//this produces an error
using (Stream PostData = WebReq.GetRequestStream())
{
PostData.Write(buffer, 0, buffer.Length);
PostData.Close();
}
//open and read response
HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();
Stream Answer = WebResp.GetResponseStream();
StreamReader _Answer = new StreamReader(Answer);
WebResp.Close();
//return string
return _Answer.ReadToEnd();
超时主要是在大约 10 秒的空闲时间之后引发,但也会在连续五个左右的请求之后引发。实在找不到模式。
这段代码可能有什么问题?还有其他(更好的)调用 WCF 服务的方法吗?
【问题讨论】:
标签: c# asp.net wcf httpwebrequest timeout