调试WCF Web服务故障

时间:2011-03-16 21:48:38

标签: c#-4.0 wcf

我正在尝试调试Web服务异常。我在Visual Studio 2010,C#,。net 4.0框架中以调试模式运行客户端和服务。

当我运行客户端并让它调用Web服务时,我得到一个例外:

  

类型: System.ServiceModel.FaultException`1 [[System.ServiceModel.ExceptionDetail,System.ServiceModel,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089]]   错误消息:“myService.Service”的类型初始化程序引发了异常   来源: mscorlib

但是,该服务没有任何例外。

我得到的堆栈跟踪似乎表明已经进行了调用,并且正在处理回复(即使回复是例外):

  

服务器堆栈跟踪:

     在System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(消息回复,MessageFault错误,字符串操作,MessageVersion版本,FaultConverter faultConverter)

     在System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime操作,ProxyRpc& rpc)

     at System.ServiceModel.Channels.ServiceChannel.Call(String action,Boolean oneway,ProxyOperationRuntime operation,Object [] ins,Object [] outs,TimeSpan timeout)

     在System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall,ProxyOperationRuntime操作)

     在System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

有人可以指出我需要做些什么来调试它吗?

我目前正在设置Service Trace Viewer工具,看看是否会告诉我更多内容。

2 个答案:

答案 0 :(得分:7)

错误消息表明您的服务类myService.Service具有静态构造函数或字段初始值设定项表达式,其中包含错误,导致未处理的异常在加载服务类型时转义静态ctor。

在调试器下的服务主机进程中,只需在静态ctor和字段初始值设定项表达式上放置断点,然后逐步执行直到发生基础异常。

如果你知道如何使用它,那么Fusion(.NET类加载器)日志也可能会让你到那里。

答案 1 :(得分:2)

错误可能是服务器端缺少依赖性。启动fuslogvw.exe,启用故障记录,重现问题并查找相关的故障记录。