我们正在使用企业库4.1异常处理应用程序块的ExceptionShielding功能与自定义RoleProvider一起使用我们的WCF服务。
当RoleProvider确定用户不在角色中并从IsInRole方法返回false时,发生以下异常:
System.ServiceModel.Security.MessageSecurityException, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 No signature message parts were specified for messages with the '{XXX}' action.
WCF然后中止服务操作的RequestContext
,并且客户端超时。
我尝试过此链接中提到的解决方案但没有成功:
http://www.codeplex.com/entlib/Thread/View.aspx?ThreadId=25236
我们还从EHAB政策中删除了System.Exception
例外类型,实际上EHAB对此政策没有任何作用,这没有任何效果。
阻止此异常的唯一方法是在服务实现上注释掉ExceptionShielding
属性。
非常感谢对此问题的任何修复。