显示service方法引发的异常列表

时间:2017-07-12 18:36:00

标签: c# wcf

如何检查服务方法可能抛出的异常?考虑以下程序

[ServiceContract]
public interface IApple{
    [FaultContract(typeof(DivideByZeroException))]
    [OperationContract]
    int set(bool val);
}
public class Apple : IApple{
    public int set(bool val)
    {
        throw new FaultException<DivideByZeroException>(new DivideByZeroException());
    }
}

Client.cs
----------
Main(){
   AppleClient a = new AppleClient();
   try{
      // will throw exception
      a.set();
   }
   // How do I know that this method will throw the following exception?
   catch(FaultException<DivideByZeroException> ex){}

是否可以知道服务方法可以抛出哪些异常,以便我们可以捕获这些异常?查看WSDL文件,我能够理解方法抛出的异常,但是有没有更简单的方法来列出方法可以抛出的方法和异常?非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

在web.config中,有一个行为标记。放置以下配置。

<behavior>
<serviceDebug includeExceptionDetailInFaults="true" /></behavior>

如果要跟踪所有服务调用,可以将以下内容粘贴到wcf的配置文件中。 initializeData是日志文件写入的位置。您需要使用service trace viewer tool来查看日志。

<system.diagnostics>
<sources>
  <source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">
    <listeners>
      <add name="xml" />
    </listeners>
  </source>
  <source name="myUserTraceSource" switchValue="Warning, ActivityTracing">
    <listeners>
      <add name="xml" />
    </listeners>
  </source>
</sources>
<sharedListeners>
  <add name="xml" type="System.Diagnostics.XmlWriterTraceListener" initializeData="C:\logs\Traces.svclog" />
</sharedListeners>