2012-09-24 5 views
0

대용량 요청/응답을 보내거나 받기 위해 웹 서비스 (asmx)에 문제가 있습니다 ... 내가 오류가 계속 해요 "기본 연결이 닫혔습니다 : 예기치 않은 오류가 수신에 발생했습니다"웹 서비스 (asmx) 오류 - 기본 연결이 닫혔습니다 : 수신시 예기치 않은 오류가 발생했습니다

HttpWebRequest request = HttpWebRequest.Create("https://test.smth.cin:443/ws/1.0") as HttpWebRequest; 
request.KeepAlive = true; 
request.Method = "POST"; 
request.ContentType = "text/xml; charset=utf-8"; 
request.ClientCertificates.Add(Cert); 
request.Headers.Add("SOAPAction", @"https://test.smth.cin:443/ws/1.0" + p_SOAPAction); 
request.Timeout = 2200000; 
StreamWriter requestWriter = new StreamWriter(request.GetRequestStream(),System.Text.Encoding.UTF8); 
requestWriter.Write(str_SOAP); 
requestWriter.Flush(); 
requestWriter.Close(); 



    HttpWebResponse response = request.GetResponse() as HttpWebResponse; 
    Stream responsedata = response.GetResponseStream(); 
    StreamReader responsereader = new StreamReader(responsedata); 

    WS_Response ws_r = new WS_Response(); 
    XmlDocument WS_XML_Response = new XmlDocument(); 

    byte[] encodedString = Encoding.UTF8.GetBytes(str_SOAP); 

    // Put the byte array into a stream and rewind it to the beginning 
    MemoryStream ms = new MemoryStream(encodedString); 
    ms.Flush(); 
    ms.Position = 0; 
    WS_XML_Response.Load(ms); 

나는 또한 webconfig에서 <httpRuntime maxRequestLength="200000" executionTimeout="360000" /> 설정하고 난 여전히 오류를 받고 있어요.

아이디어가 있으십니까?

+0

내가 바이올린으로 확인한 결과, 항상 "504 Gateway Timeout"이 나타납니다. – DiaMonD

답변

0

변경하십시오. maxRequestLenght = Int32.MaxValue();

될 것

곳 응답 XML이 유효하지 않습니다 및 연결이 중에 발생하는 예외로 인해 폐쇄되는 경우 2,147,481,263 내가 과거에이 오류를 본 적이

+0

maxRequestLenght가 Int32.MaxValue로 변경되었지만 변경이 없음 ... 여전히 오류 ... – DiaMonD

0

, 그것은 문제가있었습니다 = 유효하지 않은 XML 처리. 원시 XML 요청 데이터를 저장 한 다음 웹 서비스의 스키마에 대해 해당 XML 데이터의 유효성을 검사하려고합니다. 응답 XML에 무언가가있어 연결이 강제로 닫히는 것을 알 수 있습니다.

+0

XML 응답이 유효합니다. 웹 서비스가 호스팅되는 서버에서 문제가 있다고 생각합니다. 이 웹 서비스를 사용하는 다른 사람들과 확인한 결과 같은 문제가 있습니다 ... – DiaMonD

관련 문제