在ExceptionShielding下发生System.ServiceModel.Security.MessageSecurityException

时间:2009-04-30 21:01:25

标签: wcf exception-handling enterprise-library

我们正在使用企业库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属性。

非常感谢对此问题的任何修复。

1 个答案:

答案 0 :(得分:2)

我花了几个小时试图找出原因。 我已经发布了我的答案here

基本上,您需要定义Fault Action并将其设置为相同的命名空间。