我们将 Enterprise Library 4.1 异常处理应用程序块的 ExceptionShielding 功能与自定义 RoleProvider 与我们的 WCF 服务结合使用。
当 RoleProvider 确定用户不在角色中并从 IsInRole 方法返回 false 时,将发生以下异常:
System.ServiceModel.Security.MessageSecurityException,System.ServiceModel,版本=3.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089 没有为具有“{XXX}”操作的消息指定签名消息部分。
WCF 然后中止RequestContext
服务操作,客户端超时。
我尝试了此链接中提到的解决方案,但没有成功:
http://www.codeplex.com/entlib/Thread/View.aspx?ThreadId=25236
我们还System.Exception
从 EHAB 策略中删除了异常类型,实际上让 EHAB 对此策略没有任何作用,这没有任何效果。
唯一阻止此异常的方法是注释掉ExceptionShielding
服务实现上的属性。
对此问题的任何修复将不胜感激。