Castle.Core、Castle.ActiveRecord、NHibernateを構築して、部分的な信頼を可能にするにはどうすればよいですか?これを行う方法を示すリソースはWeb上にたくさんありますが、私が見つけたすべてのサイトは、nant build -D:assembly.allow-partially-trusted-callers=true
各アセンブリの構築に使用すると言っています。ここでCastle.Coreトランクを見ると、 *。buildファイルはありません。
これはどのように達成できますか?.NET3.5を使用しています。これはWebアプリケーションではありません。
編集:NHibernate 2.1.2GA(最新の安定バージョンだと思います)を使用しています。以下の手順の問題は、トランクからCastle.CoreとCastle.ActiveRecordを構築することを参照しているように見えることです。トランクは、バージョンと一致しないNHibernate3.0.0を必要としているようです。
解決
私の微調整のほとんどすべては、プロジェクトのプロパティの下にある[セキュリティ]タブで行われました。
- 「アプリケーションのインストール元のゾーン:」ラベルの下で「(カスタム)」を選択しました
- アプリケーションに必要なアクセス許可については、UIPermissionだけでなくSqlClientPermissionも含める必要がありました。将来の開発のために問題を否定するために、私は「アセンブリにxへの無制限のアクセスを許可する」を選択しました。ここで、は選択された権限です。これは、上記の両方の権限に対して行われました。含めることを選択した権限はアプリケーションごとにあり、2つのケースが同じになることはないことに注意してください。
- [詳細...]ボタンの下で、両方のオプションの選択を解除しました([選択したアクセス許可セットでこのアプリケーションをデバッグする]と[アプリケーションにその元のサイトへのアクセスを許可する])。
また、アプリケーションとSQL Serverは異なるドメインに存在するため、データベースサーバードメインを含めるように接続文字列を設定する必要がありました。したがって、元の接続文字列データソースは「DataSource=DB_SERVER」から「DataSource=DB_SERVER.DOMAIN」に移動する必要がありました。
最後に、requirePermission="false"
すべての構成セクションを設定する必要がありました。私configSections
はこのようになりました:
<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>
すべてが言われ、実行された後、私はこのアプリケーションを別のドメインからのファイル共有に正常に公開し、ユーザーに問題なくアプリケーションをインストールさせることができました。これらの手順を他のアプリケーションに適用し、新しくコンパイルされたアセンブリを使用することも魅力のように機能しました。