При работе с WCF много раз массаж исключений не помог нам решить проблему . Вышеуказанный массаж обычно является симптомом для одной из следующих проблем:Подключенное соединение было закрыто: соединение было неожиданно закрыто
- Значения возврата больше значения, которое было определено в файле конфигурации.
- Существует проблема с заходящего
- Существует проблема с сериализации данных
я испытал 3-ю проблему, которая была с перечислениями Проблема заключалась в том, что перечисление было явно определено конечной точкой ЗНАЧЕНИЯ
Public Enum FrequencyEnums
EveryTime = 1
OncePerHour = 2
OncePerDay = 3
OncePerWeek = 4
Never = 5
End Enum
И частная собственность, которая с помощью этого перечисления был определен следующим образом
Private m_sendFrequencyID As FrequencyEnums
Теперь, поскольку перечисление не имеет определение значения по умолчанию и потому что свойство не инициализирована явно и , поскольку значение перечисления для 0 отсутствует в перечислении и , поскольку значение по умолчанию перечисления независимо от указанного варианты всегда 0 Когда я пытался вернуть экземпляр этого класса к клиенту, я получил эту ошибку: Базовое соединение закрыто: соединение было закрыто неожиданно
решение является одним из следующих:
- Определить значение 0 для перечислений или
- Определить значение по умолчанию для свойства из значений перечисления.
- Назначьте начальное значение свойства
Мой вопрос, как я могу найти эту ошибку с помощью инструментов Microsoft, а не методом проб и ошибок?
Вопрос в том, как определить проблему, а не как ее решить. Трудности состоят в том, чтобы выяснить это из этого исключения: «Основное соединение было закрыто: соединение было неожиданно закрыто», что мало говорит. – Kamarey
Да, это одна из проблем с WCF, часто ошибка является очень общей или вводящей в заблуждение. Это означает, что вы не можете перейти от сообщения об ошибке к проблеме. Вам нужно посмотреть, что вы делаете, насколько это сообщение об ошибке. –
WCF специально и по дизайну использует «маскировку ошибок», например. он по дизайну не показывает слишком много информации об ошибке. Давайте посмотрим правде в глаза - большую часть времени эта информация на самом деле не помогает конечному пользователю ... –