皆さん、こんにちは。これが私の状況です。ローカル ハンドラー ファイルに対して 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()));
例外がスローされたときです。何か案は?前もって感謝します。
ジェームズ