У меня есть служба WCF, к которой я обращаюсь в Silverlight. Приложение Silverlight требует аутентификации (аутентификация происходит через звонок в сервис).
Я заметил, что, когда время аутентифицированного сеанса истекает, и пользователь делает что-то на стороне приложения, которое будет делать вызов службе, приложение просто зависает, ожидая ответа службы. Мой сервис предназначен для вывода исключения в этих случаях, однако на стороне Silverlight ничего не назначается, а вместо этого выдается исключение:
CommunicationException не было обработано кодом пользователя
Удаленный сервер возвратил ошибку: NotFound.
В моих методах обслуживания я проверяю, аутентифицирован ли пользователь до сих пор, и если да, я продолжаю операцию. Если нет, я присваиваю значение параметру out (типа Exception). На стороне Silverlight я проверяю, является ли это исключение пустым, и в противном случае предпринимаю соответствующие действия. Когда я выполняю, параметр out получает правильное исключение, но затем Silverlight выдает вышеупомянутое исключение (в Reference.cs), прежде чем оно даже достигнет точки, где я смогу обработать это ...
Кто-нибудь еще видел это? Есть предложения?
Редактировать : Кажется, что наличие какого-либо исключения, в том числе наследования и их содержания, вызывает вышеуказанное исключение. Я нашел самый простой способ обойти это - просто передать информацию об исключении в свой собственный объект Exception (который, опять же, не может включать объект System.Exception)