Pregunta

Estoy intentando utilizar Windsor y NHibernate en un entorno de confianza media y me encuentro con algunos problemas con los permisos. He leído las otras preguntas sobre esto, pero estoy usando la instalación NHibernate de Windsor que no he visto discutido.

Por alguna razón, existe una dependencia en el ensamblado Castle.Service.Transations cuando se inicia el contenedor. Esto intenta crear una instancia de:

Castle.Services.Transaction.CallContextActivityManager()

Se genera una excepción de seguridad cuando CallContextActivityManager se cansa para usar SetData en System.Runtime.Remoting.Messaging.CallContext, que solo está permitido si tiene permiso de infraestructura. Supongo que las aplicaciones de confianza media no lo hacen.

¿Alguien sabe una forma de evitar este problema de seguridad en la confianza media? ¿Debo volcar la instalación de NHibernate y registrarla manualmente con el contenedor?

¿Fue útil?

Solución

Puede solucionar esto registrando el TLSActivityManager en el contenedor (para el tipo IActivityManager). El DefaultTransactionManager (utilizado por NHibernateIntegrationFacility) utilizará este ActivityManager en lugar de activar un nuevo CallContextActivityManager.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top