如何检查服务方法可能抛出的异常?考虑以下程序
[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文件,我能够理解方法抛出的异常,但是有没有更简单的方法来列出方法可以抛出的方法和异常?非常感谢任何帮助。
答案 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>