인사말, 모두. 여기에 내 상황이있다. HttpWebRequest를 로컬 처리기 파일로 만들려고하는데 다음 예외가 계속 발생합니다.HttpWebRequest를 로컬 ASHX 파일로 만들 때 IOException
전송 연결에서 데이터를 읽을 수 없습니다 : 기존 연결이 원격 호스트에 의해 강제로 닫혔습니다.
이제 사이트에서 사용할 제 3 자용 통합 코드를 작성 중이므로 로컬 처리기 파일을 사용하고 있습니다. 요청할 수있는 테스트 환경이 생길 때까지 기본적으로 프로세스를 로컬 핸들러 파일로 조롱하고 있습니다. 다음은 관련 코드입니다. 감사.
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"로 정의된다
WebRequest 클래스 코드 (subRequest 변수는이 코드를 실행하는 방법에 전달 된 객체이다). 나는 핸들러 파일을 잘 치고 코드를 밟을 수있다. 모두 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()));
예외가 throw되는시기입니다. 어떤 아이디어? 미리 감사드립니다. 당신이 연결을 다시 사용하지 않으려하거나 동일한 스키마/서버/포트에 다른 요청이있을 예정되어 있지 않은 경우
제임스
LOL! 그리고이 질문을 게시하자마자 기다렸던 테스트 환경에 대한 연결 세부 정보를 받았습니다. 재밌 네요. 그러나이 질문에 대한 대답이나 제안은 여전히 감사 할 것입니다. :) –