При написании ниже мой код блокируется в GetResponse. Почему?
try
{
WebRequest myWebRequest = WebRequest.Create(strURL);
WebResponse myWebResponse = myWebRequest.GetResponse();
//more code here
При написании ниже мой код блокируется в GetResponse. Почему?
try
{
WebRequest myWebRequest = WebRequest.Create(strURL);
WebResponse myWebResponse = myWebRequest.GetResponse();
//more code here
Обычно это происходит, если вы сделали несколько запросов к одному и тому же хосту и не удалили файл WebResponse
.
Настройки управления соединениями по умолчанию разрешают только 2 (или, может быть, 4, я не помню) открытых соединений с одним и тем же хостом одновременно. Если вам действительно нужно это изменить, используйте <connectionManagement>
< /a> элемент app.config, но обычно достаточно просто избавиться от WebResponse
:
try
{
WebRequest myWebRequest = WebRequest.Create(strURL);
using (WebResponse myWebResponse = myWebRequest.GetResponse())
{
//more code here
myWebResponse.GetResponseStream()
, не будет ли он Close()
потоком до того, как будет возвращен весь поток?... если я не использую оператор using
, не будет ли это также означать, что myWebResponse
не будет правильно утилизирован?... Я знаю, что могу закрыть Stream
в своей вызывающей функции, но не уверен, что происходит с объектом WebResponse
- person user919426; 19.03.2015
Stream
, один входящий, а другой записываемый, в соответствии с соглашением для потоков. Красиво распоряжается!
- person user919426; 19.03.2015