2009-04-30 10 views
5

Estamos utilizando la característica ExceptionShielding de Enterprise Block 4.1 Exception Handling Application Block en combinación con un RoleProvider personalizado con nuestros servicios WCF.System.ServiceModel.Security.MessageSecurityException que ocurre bajo ExceptionShielding

Cuando el RoleProvider determina un usuario no está en un papel y devuelve falso del método IsInRole, la siguiente excepción está ocurriendo:

 
    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 entonces aborta la RequestContext de la operación de servicio, y los tiempos de cliente fuera.

He intentado la solución se hace referencia en este enlace sin éxito:

http://www.codeplex.com/entlib/Thread/View.aspx?ThreadId=25236

También quitamos el tipo System.Exception excepción de la política de EHAB, teniendo efectivamente EHAB hacer nada para esta política, y esto no tiene efecto.

Lo único que impide esta excepción es comentar el atributo ExceptionShielding en la implementación del servicio.

Cualquier corrección para este problema sería muy apreciada.

Respuesta

2

Pasé horas y horas tratando de descubrir el motivo. He publicado mi respuesta here.

Básicamente debe definir la acción de falla y configurarla en el mismo espacio de nombres.

Cuestiones relacionadas