我正在处理WCF服务,并希望使用Enterprise Library ExceptionHandling块将故障消息发送回客户端,但我遇到了问题。我在网上很少发现这个错误。
我将exceptionHandling块添加到web.config中,并在configSections中引用了exceptionHandling,但我仍然收到错误。
我在项目中也引用了ExceptionHandling.WCF dll。
我不应该做任何其他事情,但是当我在浏览器中发布并启动服务时,它仍然会抛出错误。
有什么想法吗?这可能是非常简单的事情,但我找不到问题。以下是我的web.config中的相关部分:
<section name="exceptionHandling" type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Configuration.ExceptionHandlingSettings, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<exceptionHandling>
<exceptionPolicies>
<add name="WCF Exception Shielding">
<exceptionTypes>
<add type="System.InvalidOperationException, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" postHandlingAction="ThrowNewException" name="ArgumentNullException">
<exceptionHandlers>
<add
type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.WCF.FaultContractExceptionHandler, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.WCF"
name="DefaultFaultContract Handler"
faultContractType="Bursteg.Samples.WCFIntegration.ServiceContracts.ServiceFault, Bursteg.Samples.WCFIntegration.ServiceContracts">
<mappings>
<add name="Id" source="{Guid}"/>
<add name="MessageText" source="{Message}"/>
</mappings>
</add>
</exceptionHandlers>
</add>
</exceptionTypes>
</add>
</exceptionPolicies>
答案 0 :(得分:4)
我明白了。 exceptionHandling引用需要是configSections的直接子代。我有几个节点,所以它没有被引用。我以为我会传递我的解决方案。
另外,作为一方,我唯一的参考是Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.WCF
<configSections>
<section name="exceptionHandling" type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Configuration.ExceptionHandlingSettings, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</configSections>
答案 1 :(得分:0)
您是否有<exceptionHandling>
的结束标记,或者您是否忘记将其复制/粘贴到样本中?