2012-04-23 3 views
3

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

ниже это клиентский код, который я использую ...

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 в Binding. Время, отведенное для этой операции, возможно, было частью более длительного таймаута.

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

+0

Вы пробовали отлаживать фактическое обслуживание, когда вы делаете запрос? Также убедитесь, что все, что увеличивается в тайм-ауте, которое вы делаете на сервере, вы делаете и на клиенте. – stephenl

+0

У меня нет приложения app.config на моем сервере, мне нужно создать? –

+0

Служба, к которой подключается ваш клиент, определяет параметры контракта и привязки, с которыми взаимодействует ваш клиент. Если ваш сервер устанавливает тайм-аут как x, и ваш клиент устанавливает его на причину, настройка сервера будет той, которая используется. – stephenl

ответ

1

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

Избежания Проблемы с Использованием Заявлением http://msdn.microsoft.com/en-us/library/aa355056.aspx

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

0

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

new WCFServiceClient ("WSHttpBinding_IEmployeeService") 
+0

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

+0

Можете ли вы объяснить немного больше, что вы подразумеваете под «просмотром моего приложения»? –

+0

хорошо, что я имею в виду, это то, что я потребляю услуги, которые предоставляют кучу таких методов, как save, get, delete и т. Д. ... в моем клиентском приложении я пользуюсь этими услугами, и все работает нормально, как ожидалось, после нескольких минут броска приложение (которое потребляет услуги), то я получаю ошибку, которую я опубликовал в своем оригинальном посте. и я надеюсь, что это будет иметь смысл. –

0

Я не знаю, насколько велики данные, которые вы получаете, но как насчет getTimeout?

+0

Я тестировал менее 10 символов –