我在网站上有一个通用处理程序。当我直接进入它时,它会立即响应。当我尝试从.Net程序到达它时,在服务器注册请求之前有一段很长的时间(10秒给出或取出)暂停。
以下是我用来点击服务器的代码:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://MYURL/fs.ashx");
request.Method = "POST";
request.ContentType = "text/xml";
// This is the line that takes 10 seconds to return
StreamWriter streamOut = new StreamWriter(request.GetRequestStream(), System.Text.Encoding.ASCII);
streamOut.Write(sXMLToSend);
streamOut.Close();
XmlDocument doc = new XmlDocument();
HttpWebResponse resp = null;
resp = (HttpWebResponse)request.GetResponse();
StreamReader responseReader = new StreamReader(resp.GetResponseStream(), Encoding.UTF8);
sResponse = responseReader.ReadToEnd();
Console.WriteLine(sResponse);
resp.Close();
我不认为这条线在一周前就已经花了这么长时间,但我没有任何数据支持这一点。任何想法可能是什么问题?如果我在浏览器中点击了网址,它会立即响应。是否有任何工具可以用来判断它是我的机器还是服务器,或者......我甚至都不知道从哪里开始。
答案 0 :(得分:1)
这可能是因为GetRequestStream是一个同步方法并且在返回之前将其全部缓存了吗?也许您应该尝试调用异步版本并处理数据。