2

J'essaie d'utiliser Windsor et NHibernate dans un environnement de confiance moyenne et je rencontre des problèmes de permissions. J'ai lu les autres questions à ce sujet, mais j'utilise l'installation NHibernate de Windsor, dont je n'ai pas encore discuté.Utilisation de Castle Windsor et de l'installation NHibernate sur l'hébergement partagé

Pour une raison quelconque, il existe une dépendance de l'assembly Castle.Service.Transations au démarrage du conteneur. Cette tente alors de créer et instance de:

Castle.Services.Transaction.CallContextActivityManager() 

Une exception de sécurité est élevé que les pneus CallContextActivityManager à utiliser SetData dans System.Runtime.Remoting.Messaging.CallContext qui est autorisée uniquement si vous avez la permission de l'infrastructure. Je suppose que les applications de confiance moyenne ne le font pas.

Est-ce que quelqu'un connaît un moyen de contourner ce problème de sécurité en moyenne confiance? Dois-je vider la fonction NHibernate et l'enregistrer manuellement avec le conteneur?

Répondre

3

Vous pouvez contourner ce problème en enregistrant TLSActivityManager dans le conteneur (pour le type IActivityManager). DefaultTransactionManager (utilisé par NHibernateIntegrationFacility) utilisera alors ce ActivityManager au lieu de déclencher un nouveau CallContextActivityManager.

+0

Fonctionne un régal. Merci beaucoup. –

Questions connexes