2011-03-03 14 views
5

He publicado una pregunta ayer acerca de cómo habilitar la suplantación uso de los servicios de WCF aquí: WCF service not impersonating specified user in config?"servicio no puede ser activado, ya que requiere asp compatibilidad de red", pero lo necesito para la suplantación

me permitió aspnetCompatibilityMode pero cuando actualizo mi proxy de servicio, dice "el servicio no se puede activar porque requiere compatibilidad asp net". No estoy del todo seguro de lo que esto significa. Si cambio la configuración a AspNetCompatibilityRequirementsMode.Allowed, no permite la suplantación. Intenté habilitar la configuración tanto en web.config como a través del atributo de clase.

¿Hay una forma de evitar esto sin establecer grupo de aplicación de mi servicio para ejecutar como el usuario que necesito? Gracias.

+0

¿Ha habilitado el modo de compatibilidad en su web.config también? –

+0

No he hecho ambas cosas. Lo he habilitado en el web.config del servicio o en la clase en sí (no he cambiado nada en el sitio web.config de mi sitio). –

Respuesta

12

Debe activar AspNetCompatibility en web.config del sitio de alojamiento de su servicio:

<system.serviceModel> 
    ... 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/> 
</system.serviceModel> 

Debido a que usted está haciendo dependiente de la implementación de un servicio de ASP.NET que debe marcar su clase de servicio con:

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)] 

valor predeterminado de AspNetCompatibilityRequirements.RequirementMode es NotAllowed de manera que es más probable razón de su excepción.

Cuestiones relacionadas