2013-07-10 2 views
0

У нас было много проблем с WCF-сервисом, который у нас есть, что делает большой объем исходящих запросов. У нас есть висящие запросы IIS, которые просто продолжают наращивать, пока сервер не опустится. Мы взяли стек, который заставляет нас думать, что это происходит, когда мы вызываем HttpWebResponse.GetResponse() в операторе using, таком как следующий бит кода.WCF Исходящие запросы - TimeoutException Not Disposing?

 using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) 
     { 
      using (StreamReader reader = new StreamReader(response.GetResponseStream())) 
      { 
       str = reader.ReadToEnd(); //Not Being Hot When Exception Thrown 

       reader.Close(); //Not Being Hot When Exception Thrown 
       response.Close(); //Not Being Hit When Exception Thrown 
      } 
     } 

Я наткнулся на несколько статей, в том числе ""Do Not Usre 'Using for WCF Clients'

Хотя я не создаю клиента WCF, мне интересно, если это происходит потому, что в контексте моей службы WCF?

Исключение - исключение TimeoutException, потому что запрос занимает больше минуты. Я хорошо знаю, что могу изменить тайм-аут, но я не ищу этого исправления. Я хочу знать, есть ли у меня кровоточащие соединения, когда происходит это исключение.

ответ

0

Нет, ваше соединение будет закрыто, когда объект будет удален. Нет необходимости называть Close() здесь.

Смежные вопросы