Отладка ошибок веб-службы WCF - PullRequest
4 голосов
/ 17 марта 2011

Я пытаюсь отладить исключение веб-службы.У меня и клиент, и служба работают в режиме отладки в Visual Studio 2010, C #, .net 4.0 framework.

Когда я запускаю клиент и заставляю его вызывать веб-сервис, я получаю исключение:

Тип: System.ServiceModel.FaultException`1 [[System.ServiceModel.ExceptionDetail, System.ServiceModel, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = b77a5c561934e089]] Сообщение об ошибке: Инициализатор типа для myService.Service вызвал исключение.
Источник: mscorlib

Однако служба не показываетисключения вообще.

Полученная трассировка стека, кажется, указывает на то, что был выполнен вызов, и ответ обрабатывался (даже если ответ был исключением):

Сервертрассировка стека:

в System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood (ответ на сообщение, ошибка MessageFault, строковое действие, версия MessageVersion, FaultConverter faultConverter)

в System.ServiceModel.Channels.ServiceChannel.HandleReply (операция ProxyOperationRuntime, ProxyRpc & rpc)

в System.ServiceModel.Channels.ServiceChannel.Call (строковое действие, логическое одностороннее действие, операция ProxyOperationRuntime, объект] [объект]], объект []Тайм-аут TimeSpan)

в System.ServiceModel.Channels.ServiceChannelProxy.InvokeService (метод IMethodCallMessageCall, операция ProxyOperationRuntime)

в System.ServiceModel.Channels.ServiceChannelPross.Invage_Synage * Message_Synke1032 *

Может кто-нибудь подсказать, что мне еще нужно сделать для отладки?

В настоящее время я настраиваю инструмент Service Trace Viewer , чтобы узнать, скажет ли это мнечто-нибудь еще.

Ответы [ 2 ]

7 голосов
/ 17 марта 2011

В сообщении об ошибке указывается, что в вашем классе обслуживания myService.Service есть статический конструктор или выражение инициализатора поля с ошибкой, в результате чего необработанное исключение выходит из статического ctor при загрузке типа Service.

В хост-процессе службы под отладчиком просто установите точки останова в выражениях статического ctor и инициализатора поля и выполняйте шаги до тех пор, пока не произойдет основное исключение.

Журнал Fusion (загрузчик классов .NET), скорее всего, поможет вам, если вы знаете, как его использовать.

2 голосов
/ 17 марта 2011

Ошибка, вероятно, отсутствует зависимость на стороне сервера. Запустите fuslogvw.exe, включите ведение журнала отказов, воспроизведите проблему и найдите соответствующие записи об ошибках.

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