Comment puis-je construire Castle.Core, Castle.ActiveRecord et NHibernate pour permettre la confiance partielle? Il ya beaucoup de ressources sur le web montrant comment cela peut être fait, mais chaque site que j'ai trouvé dit utiliser nant build -D:assembly.allow-partially-trusted-callers=true
pour construire chaque ensemble. Quand je regarde le Castle.Core trunk ici il n'y a pas de fichier *.Compiler Castle.ActiveRecord pour permettre une confiance partielle?
Comment cela peut-il être accompli? J'utilise .NET 3.5. Ce n'est pas une application web.
Edit: Nous utilisons NHibernate 2.1.2GA (dernière version stable, je crois). Le problème avec les instructions données ci-dessous est qu'il ressemble à leur référence à la construction Castle.Core et Castle.ActiveRecord de tronc. Trunk semble exiger NHibernate 3.0.0 qui ne correspond pas à notre version.
Solution
Presque tous mes réglages ont été effectués dans l'onglet Sécurité des propriétés du projet.
- Sous la rubrique « Zone votre application sera installée à partir de: » label I sélectionné « (Personnalisé) »
- En ce qui concerne les autorisations requises par l'application, je devais inclure SqlClientPermission ainsi que UIPermission. Afin d'annuler les problèmes pour le développement futur, j'ai sélectionné "Accorder des accès sans restriction à x" où est l'autorisation sélectionnée. Cela a été fait pour les deux autorisations indiquées ci-dessus. Notez que les autorisations que vous choisissez d'inclure seront appliquées par application et que deux cas ne seront pas identiques.
- Sous le bouton « Avancé ... » J'UNSELECTED les deux options (« Debug cette application avec le jeu d'autorisations sélectionné » et « autoriser l'accès de l'application à son site d'origine »).
En outre, étant donné que l'application et SQL Server résident sous des domaines différents, j'ai dû définir ma chaîne de connexion pour inclure le domaine du serveur de base de données. Donc, ma source de données de chaîne de connexion d'origine devait passer de "Source de données = DB_SERVER" à "Source de données = DB_SERVER.DOMAIN".
Enfin, je devais mettre requirePermission="false"
sur toutes mes sections de configuration. Mon configSections
a fini comme ceci:
<configSections>
<section name="activerecord" type="Castle.ActiveRecord.Framework.Config.ActiveRecordSectionHandler, Castle.ActiveRecord" requirePermission="false"/>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" requirePermission="false"/>
<section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
<section name="hibernate-configuration" requirePermission="false" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"/>
</configSections>
Après tout a été dit et fait, j'ai pu avec succès de publier cette application sur un partage de fichiers à partir d'un autre domaine et ont les utilisateurs installent l'application sans problème. L'application de ces étapes à nos autres applications et l'utilisation de nos assemblys nouvellement compilés ont également fonctionné comme un charme.
t ry les suggestions de ce fil: http://groups.google.com/group/castle-project-users/browse_thread/thread/90d8fbdcc2c363ae –
@Mauricio, malheureusement ce lien cause toujours le même problème. – Mike