2013-04-18 3 views
2

У меня проблема с таймаутом. Служба, с которой я связываюсь, прекрасно работает, когда она отвечает своевременно. Когда это занимает около 10 секунд, время истекает за исключением. Помимо Timeout и ReadWriteTimeout, какие другие свойства тайм-аута можно настроить так, чтобы он нормально подошел? Есть ли что-то, что мне нужно установить на уровне TCP/IP? Спасибо за вашу помощь.Таймаут: Основное соединение было закрыто: соединение было неожиданно закрыто

System.Net.WebException: Основное соединение было закрыто: соединение было неожиданно закрыто. at System.Net.HttpWebRequest.GetResponse()

Вот мой код. Я попытался изменения многих вещей:

'The post works 
Dim _httpRequest As HttpWebRequest 
_httpRequest = WebRequest.Create("mywebservice") 
System.Net.ServicePointManager.Expect100Continue = False 
_httpRequest.Credentials = CredentialCache.DefaultCredentials 
_httpRequest.ProtocolVersion = HttpVersion.Version10 
'This is a 60 second wait 
_httpRequest.Timeout = 60000 
'This is a 60 second wait 
_httpRequest.ReadWriteTimeout = 60000 
_httpRequest.KeepAlive = False 
_httpRequest.Method = "POST" 

'If the response takes takes 10 seconds 
'This is the message we get: System.Net.WebException: The underlying connection was closed: The connection was closed unexpectedly. 

_httpRequest.Method = "GET" 
_httpRequest.ContentType = "text/xml" 
'The error is here 
Dim httpResponse As HttpWebResponse = _httpRequest.GetResponse 
+0

Вы проверили настройки таймаута в IIS? Или любой веб-сервер, который вы используете (вы не укажете). – Melanie

+0

Melanie. Спасибо за быстрый ответ. Фактически это локальный веб-сервис, который отключается. У нас есть сторонний сервис, который мы выполняем и получаем. Пример: HTTP://10.10.50.28:22280/transaction/identifyCustomer –

+0

Я боюсь, что моя идея о настройках таймаута - это все, что у меня есть. Надеюсь, кто-то еще сможет вам помочь. Удачи! – Melanie

ответ

0

Timeout значение вы устанавливаете это +60000, что переводится примерно 1 минуту, так как Timeout значение в миллисекундах. Значение 1000 равно 1 секунде. Итак, попробуйте установить его соответствующим образом на более высокое значение. например Попробуйте установить его на 5 или 10 минут для теста.

+0

Это не помогло. Это похоже на то, что тайм-аут не распознается. Соединение закрывается через 10 секунд. –

+0

Что произойдет, если вы установите '_httpRequest.KeepAlive = True' –

+0

Та же ошибка. –