問候,全部。這是我的情況。我正在嘗試向本地處理程序文件發出HttpWebRequest,並且我一直收到以下異常:將HttpWebRequest設置爲本地ASHX文件時發生IOException
無法從傳輸連接讀取數據:現有連接被遠程主機強制關閉。
現在,我正在使用本地處理程序文件,因爲我正在爲該網站將要使用的第三方編寫一些集成代碼。直到我有一個測試環境可供我請求時,我基本上是用本地處理程序文件來嘲弄這個過程。這是相關的代碼。謝謝。
的WebRequest代碼(子請求變量是傳遞給執行該代碼的方法對象):
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()));
是何時拋出異常。有任何想法嗎?提前致謝。
詹姆斯
大聲笑!就這樣,只要我發佈這個問題,我就收到了我一直在等待的測試環境的連接細節。那很好笑。如果這個問題再次出現,我們仍然會對這個問題的答案或建議感到欣慰。 :) – 2009-12-11 18:16:36