2009-09-06 14 views
10

Podczas pisania poniżej mój kod blokuje się w GetResponse. Czemu?WebRequest.GetResponse blokuje się?

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

Nie ma problemu, gdy próbuje to na http: // localhost whats URI ? –

+0

Brak wystarczających informacji, aby to zdiagnozować. Czy blokuje Ci się bez względu na to, z jakiego adresu URL korzystasz, czy jest to tylko jeden adres URL, czy dzieje się to konsekwentnie, co się dzieje, gdy próbujesz uzyskać dostęp do adresu URL z przeglądarki? –

Odpowiedz

41

to zwykle się dzieje, jeśli zrobiłem kilka wniosków do tego samego hosta, a nie wyrzucać na WebResponse.

Domyślne ustawienia zarządzania połączeniem umożliwiają tylko 2 (lub 4, nie pamiętam) otwarte połączenia z tym samym hostem naraz. Jeśli naprawdę trzeba to zmienić, należy użyć elementu <connectionManagement> app.config - ale zazwyczaj będzie w porządku po prostu usuwania WebResponse:

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

I <3 Jon Skeet, który naprawił problem całkowicie. Znowu nigdy nie będę musiał sprawdzać, czy dysponować. Dzięki. –

+2

To mi nie pomogło. Próbowałem podejście "używając", a także zamknięcie odpowiedzi w użyciu ... ale nadal mam ten sam problem. – Ted

+0

Moje pytanie na temat: http://stackoverflow.com/questions/8377185/c2dm-frequent-timeouts-or-errors-when-sending-webservice-does-not- – Ted

Powiązane problemy