У меня есть клиентское приложение, которое каждые 10 секунд пытается отправить сообщение через веб-службу WCF. Это клиентское приложение будет находиться на компьютере на борту корабля, который, как мы знаем, будет иметь пятнистую интернет-связь. Я хотел бы, чтобы приложение попыталось отправить данные через службу, и если это не удастся, поставить в очередь сообщения, пока они не смогут отправить их через службу.Восстановление из CommunicationObjectFaultedException в WCF
Чтобы проверить эту настройку, я запускаю клиентское приложение и веб-сервис (как на моем локальном компьютере), так и все работает нормально. Я пытаюсь имитировать плохое интернет-соединение, убивая веб-службу и перезагружая ее. Как только я убью службу, я начинаю получать CommunicationObjectFaultedExceptions - что ожидается. Но после перезагрузки службы я продолжаю получать эти исключения.
Я уверен, что есть что-то, что я не понимаю о парадигме веб-сервиса, но я не знаю, что это такое. Может ли кто-нибудь дать совет о том, возможна ли эта настройка, и если да, то как решить эту проблему (т. Е. Восстановить канал связи с веб-службой)?
Спасибо!
Клэй
+10, если я мог - ничего себе, это поведение полностью под радаром, никогда не работал бы, что происходит если бы я не наткнулся на этот ответ. –
Bravo! Я реализовал версию этого метода расширения: TryDispose в прокси-классе для использования другими. –
@ Moby's Stunt Double - можете ли вы поделиться своим кодом? – RichardHowells