Отладка WCF-исключения вызывает CommunicationException - PullRequest
1 голос
/ 15 апреля 2009

Я представляю использование FaultException в наших сервисах WCF.

Чтобы проверить это, я создал следующую функцию на сервере:

public void ThrowException()
    {
        try
        {
            throw new ApplicationException("This is a test exception");
        }
        catch (ApplicationException ex)
        {
            throw new FaultException<ApplicationException>(ex, "Test reason");

        }
    }

Пропустить шаг вперед. Если я пройду через это, все будет нормально.

Однако, если я использую отладчик (VS2008) и позволяю коду разбиться в блоке перехвата (путем включения разрыва при исключении или перехода к нему), мой клиент генерирует CommunicationException.

Исследуя это, я нашел это сообщение на форуме: http://social.msdn.microsoft.com/forums/en-US/wcf/thread/d1ae669f-9a62-4628-86c1-c15ff4068843/

Вопрос: Почему я вижу это поведение, только при отладке (я полагаю, что другие нет)? И как я могу избежать этого поведения?

1 Ответ

1 голос
/ 16 апреля 2009

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

Как я уже сказал, я только что начал обработку исключений WCF и понял, что IErrorHandler - лучший способ обработки моих исключений, а не попытка / отлов на уровне метода.

Когда отладчик перепрыгивает через реализацию ProvideFault, отладчик не смотрит на исключение и, следовательно, не вызывает CommunicationException.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...