2009-09-06 3 views
10

아래 코드를 작성할 때 GetResponse에 내 코드가 잠겨 있습니다. 왜?WebRequest.GetResponse가 잠겨 있습니까?

 try 
     { 
      WebRequest myWebRequest = WebRequest.Create(strURL); 
      WebResponse myWebResponse = myWebRequest.GetResponse(); 
      //more code here 
+0

어떤 문제를 HTTP에서이 작업을 시도 할 때 : // localhost를 뭐죠 URI를 ? –

+0

진단에 필요한 정보가 충분하지 않습니다. 어떤 URL을 사용하든 상관없이 하나의 URL 만 사용합니까? 일관되게 발생합니까? 브라우저에서 URL에 액세스하려고하면 어떻게됩니까? –

답변

41

이는 대개 동일한 호스트에 대해 여러 요청을하고 WebResponse을 처리하지 않은 경우에 발생합니다.

기본 연결 관리 설정은 한 번에 동일한 호스트에 대해 열린 연결을 2 개 (또는 4 개는 기억할 수 없습니다) 만 허용합니다. 당신이 정말이 설정을 변경해야하는 경우 <connectionManagement>의 app.config 요소를 사용 -하지만 일반적으로 그냥 WebResponse 폐기하지 괜찮을거야 :

try 
{ 
    WebRequest myWebRequest = WebRequest.Create(strURL); 
    using (WebResponse myWebResponse = myWebRequest.GetResponse()) 
    { 
     //more code here 
+1

I <3 Jon Skeet이 문제를 완전히 수정했습니다. 다시 나는 처분을 확인하지 않았을 것이다. 감사. –

+2

그건 나에게 도움이 안된다. 나는 "using"접근 방식을 시도 했었고, using 내부의 응답에서 Close를 수행했지만, 여전히 같은 문제를 겪고있다. – Ted

+0

내 질문에 대한 답변 : http://stackoverflow.com/questions/8377185/c2dm-frequent-timeouts-or-errors-when-sending-webservice-does-not-respond – Ted

관련 문제