关于捕获FaultException前任
我在应用程序的服务器端使用企业应用程序块来处理异常。
我能够成功处理异常。我创建了一个自定义服务故障类来处理异常。
这是我的网络配置输入...
<exceptionPolicies>
<add name="WCF Exception Shielding">
<exceptionTypes>
<add type="TEST.Infrastructure.ExceptionHandling.Exceptions.TESTBusinessException, Pluto.Infrastructure.ExceptionHandling, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
postHandlingAction="ThrowNewException" name="TESTBusinessException">
<exceptionHandlers>
<add logCategory="BusinessLoggingCategory" eventId="501" severity="Error"
title="Pluto Service Exception" formatterType="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.TextExceptionFormatter, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling"
priority="0" useDefaultLogger="false" type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.LoggingExceptionHandler, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
name="Logging Handler" />
<add
type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.WCF.FaultContractExceptionHandler, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.WCF, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
name="DefaultFaultContract Handler"
faultContractType="TEST.Infrastructure.ExceptionHandling.Exceptions.TESTServiceException, Pluto.Infrastructure.ExceptionHandling"
exceptionMessage="Pluto.Infrastructure.ExceptionHandling.Exceptions.TESTBusinessException {handlingInstanceID}">
<mappings>
<add name="Id" source="{Guid}"/>
<add name="MessageText" source="{Message}"/>
</mappings>
</add>
</exceptionHandlers>
</add>
但是在客户端,当我尝试捕获此异常时,因为
catch (FaultException<TESTServiceException> fex)
{
}
此异常未被捕获。 我能够在客户端获取我在服务器端的 app.config 中编写的异常消息。
任何人都可以帮我解决这个问题吗?
预先感谢
维克拉姆
I am using Enterprise application block on my application' server side to handle exceptions.
I am able to successfully handle exception. I have created a custom service fault class to handle exceptions.
Here are my web config enteries...
<exceptionPolicies>
<add name="WCF Exception Shielding">
<exceptionTypes>
<add type="TEST.Infrastructure.ExceptionHandling.Exceptions.TESTBusinessException, Pluto.Infrastructure.ExceptionHandling, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
postHandlingAction="ThrowNewException" name="TESTBusinessException">
<exceptionHandlers>
<add logCategory="BusinessLoggingCategory" eventId="501" severity="Error"
title="Pluto Service Exception" formatterType="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.TextExceptionFormatter, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling"
priority="0" useDefaultLogger="false" type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.LoggingExceptionHandler, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
name="Logging Handler" />
<add
type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.WCF.FaultContractExceptionHandler, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.WCF, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
name="DefaultFaultContract Handler"
faultContractType="TEST.Infrastructure.ExceptionHandling.Exceptions.TESTServiceException, Pluto.Infrastructure.ExceptionHandling"
exceptionMessage="Pluto.Infrastructure.ExceptionHandling.Exceptions.TESTBusinessException {handlingInstanceID}">
<mappings>
<add name="Id" source="{Guid}"/>
<add name="MessageText" source="{Message}"/>
</mappings>
</add>
</exceptionHandlers>
</add>
But on the client side when i try to catch this exception as
catch (FaultException<TESTServiceException> fex)
{
}
this exception is not caught.
I am able to get the exception message on the client side which i have writen in app.config on server side.
Can any one please help me figure out the problem.
Thanks in advance
Vikram
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试使用XmlReader提取异常详细信息:
有关捕获故障异常的更多说明此处和此处。
Try extracting the exception details using the XmlReader:
More explanation on catching fault exceptions here and here.
您是否在操作上定义了故障契约?
您是否在服务合同上定义了 [ExceptionShielding] 属性?
还应设置以下服务行为
Have you defined fault contract on the operation ?
Have you defined the [ExceptionShielding] attribute on the service contract ?
Also the following service behavior should be set