Мы используем функцию ExceptionShielding блока приложения для обработки исключений Enterprise Library 4.1 в сочетании с настраиваемым RoleProvider с нашими службами WCF.
Когда RoleProvider определяет, что пользователь не находится в роли, и возвращает false из метода IsInRole, возникает следующее исключение:
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
Мы также удалили тип исключения System.Exception из политики EHAB, по сути, EHAB ничего не делает для этой политики, и это не имеет никакого эффекта.
Единственное, что предотвращает это исключение, - это закомментировать атрибут ExceptionShielding в реализации службы.
Мы будем очень благодарны за любое исправление этой проблемы.