大家好。这是我的情况。我正在尝试向本地处理程序文件发出 HttpWebRequest,但我不断收到以下异常:
无法从传输连接读取数据:现有连接被远程主机强行关闭。
现在,我正在使用本地处理程序文件,因为我正在为站点将使用的第三方编写一些集成代码。在我有一个可供我提出请求的测试环境之前,我基本上是在使用本地处理程序文件模拟该过程。这是相关的代码。谢谢。
WebRequest 代码(subRequest 变量是传递给执行此代码的方法的对象):
XmlSerializer serializer;
XmlDocument xmlDoc = null;
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(requestUrl);
webRequest.Method = "POST";
webRequest.ContentType = "text/xml";
webRequest.KeepAlive = true;
webRequest.Accept = "*/*";
serializer = new XmlSerializer(subRequest.GetType());
XmlWriter writer = new XmlTextWriter(webRequest.GetRequestStream(), Encoding.UTF8);
serializer.Serialize(writer, subRequest);
writer.Close();
xmlDoc = new XmlDocument();
xmlDoc.Load(XmlReader.Create(webRequest.GetResponse().GetResponseStream()));
“requestUrl”被定义为“ http://localhost:2718/Handlers/MyHandler.ashx ”。我可以很好地点击处理程序文件并单步执行代码。它所做的只是将 XML 响应组装为字符串并将其写入 Response 对象:
context.Response.ContentType = "text/xml";
string newSubscriptionId = Utils.GetUniqueKey();
StringBuilder sb = new StringBuilder();
sb.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
// Assemble XML string here
context.Response.Write(sb.ToString());
据我所知,这一切都很好。但是当我的代码到达 WebRequest 块的最后一行时:
xmlDoc.Load(XmlReader.Create(webRequest.GetResponse().GetResponseStream()));
是什么时候抛出异常。有任何想法吗?提前致谢。
詹姆士