2009-04-30 14 views
5

Si utilizza la funzione ExceptionShielding di Enterprise Library 4.1 Exception Handling Application Block in combinazione con un RoleProvider personalizzato con i nostri servizi WCF.System.ServiceModel.Security.MessageSecurityException che si verifica in ExceptionShielding

Quando il RoleProvider determina un utente non è in funzione e restituisce falso dal metodo IsInRole, la seguente eccezione si verifica:

 
    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 quindi interrompe l'RequestContext dell'operazione servizio, ei tempi client su.

ho cercato la soluzione di cui al a questo link senza successo:

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

Abbiamo anche rimosso il tipo System.Exception deroga alla politica di EHAB, efficace avendo EHAB fare nulla per questa politica, e questo non ha alcun effetto

L'unica cosa che impedisce questa eccezione è commentare l'attributo ExceptionShielding sull'implementazione del servizio.

Qualsiasi correzione per questo problema sarebbe molto apprezzata.

risposta

2

Ho passato ore e ore cercando di scoprire il motivo. Ho pubblicato la mia risposta here.

Fondamentalmente è necessario definire l'azione di errore e impostarlo sullo stesso spazio dei nomi.

Problemi correlati