Службы WCF, запрос или увеличьте значение sendtimeout привязки


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

Ниже приведен клиентский код, который я использую...
using(WCFServiceClient client = new WCFServiceClient ()) 
{ 
     //More codes here 
     Employee emp = new Employee()
     emp = client.GetEmployeeDataById(123); //<<<ERROR    
}

Я увеличиваю тайм-аут до двух минут, но все равно:

<binding name="WSHttpBinding_IEmployeeService" maxReceivedMessageSize="200000" sendTimeout="00:02:00" >

/ / Ошибка:

Время ожидания ответа канала запроса истекло после 00: 00: 59.9990000. Увеличьте значение таймаута, переданное вызову для запроса, или увеличьте значение SendTimeout значение на привязке. Время, отведенное на эту операцию, возможно, было частью более длительного таймаута.

Какая-нибудь помощь? я видел много постов, но ни один из них не кажется каким-либо исправлением или руководством.

3 3

3 ответа:

Удалось решить мою проблему после прочтения этой ссылки.

Избежание проблем с оператором Using http://msdn.microsoft.com/en-us/library/aa355056.aspx

Оператор C# "using" приводит к вызову функции Dispose(). Это то же самое, что Close (), который может выдавать исключения при возникновении сетевой ошибки. Поскольку вызов Dispose () происходит неявно в закрывающей скобке блока" using", этот источник исключений, вероятно, останется незамеченным как людьми, пишущими код и чтение кода. Это представляет собой потенциальный источник ошибок приложения.

Вы можете попробовать явный выбор привязки, чтобы исключить случай, когда вы могли бы выбрать привязку по умолчанию (упрощенная конфигурация)

new WCFServiceClient ("WSHttpBinding_IEmployeeService")

Я не знаю, насколько велики ваши данные, но как насчет receiveTimeout?