1

J'utilise (à partir de paquets Nuget) Ninject 2.2 et Fluent NHibernate 1.3 (NHibernate v3.2 sous le capot) et j'ai frappé un mur de briques .Problèmes ReflectionPermission lors de l'utilisation de Ninject 2.2, Fluent NHibernate dans un environnement de confiance moyenne

J'utilise config Fluent pour pointer vers ma base de données, applications, etc:

var fluentConfig = Fluently.Configure() 
    (MsSqlConfiguration.MsSql2008.DoNot.UseReflectionOptimizer() 
    .ConnectionString(c => c.FromConnectionStringWithKey("ExampleDB"))) 
    .Mappings(m => m.FluentMappings.AddFromAssemblyOf<ExampleMap>() 
    .Conventions.Add(FluentNHibernate.Conventions.Helpers.DefaultLazy.Never())) 
    .ExposeConfiguration(x => x 
          .SetProperty("current_session_context_class", "web")) 
    .ExposeConfiguration(BuildSchema); 

Le code fonctionne embellissent sur ma boîte locale, jusqu'à ce que je mis < niveau de confiance = "Medium" /> à miroir mon fournisseur d'hébergement, puis il commence à barf.

La ligne de problème est le 2ème dans ce bloc de code

Bind<Configuration>().ToConstant(fluentConfig.BuildConfiguration()); 
Bind<ISessionFactory>().ToConstant(fluentConfig.BuildSessionFactory()); 
Bind<ISession>().ToMethod(x => GetRequestSession(x)); 

L'exception que je reçois: » ... Demande d'autorisation de type « System.Security.Permissions.ReflectionPermission .. ..failed "

Quelqu'un a-t-il des suggestions? Mes recherches jusqu'ici n'aboutissent à rien d'autre que des informations obsolètes basées sur des versions plus anciennes de Ninject et NHibernate ou des solutions qui impliquent de décompiler X pour désengager Y ... ce que je préfère ne pas faire!

+0

Entre poser cette question et maintenant je suis passé à un fournisseur d'hébergement qui prend en charge la confiance totale. J'aimerais quand même savoir s'il y a un moyen d'avoir la FNHB dans un milieu de confiance. – Greg

Répondre

2

Utilisez la confiance corpulence moyenne au lieu de la version de NuGet: https://github.com/ninject/ninject/downloads

+0

Cela a certainement aidé, merci. La permutation de la DLL Ninject a permis à Ninject de fonctionner correctement avec la confiance moyenne. (Couramment) NHibernate lance cependant toujours la même exception. Je suis à mi-chemin! – Greg

Questions connexes