Как я могу построить Castle.Core, Castle.ActiveRecord и NHibernate, чтобы позволить частичное доверие? В Интернете есть много ресурсов, показывающих, как это можно сделать, однако каждый найденный мной сайт говорит, чтобы использовать nant build -D:assembly.allow-partially-trusted-callers=true
для сборки каждой сборки. Когда я смотрю на Castle.Core trunk здесь нет файла * .build.Компиляция Castle.ActiveRecord для частичного доверия?
Как это можно сделать? Я использую .NET 3.5. Это не веб-приложение.
Редактировать: Мы используем NHibernate 2.1.2GA (как я считаю, последняя стабильная версия). Проблема с приведенными ниже инструкциями заключается в том, что похоже, что они ссылаются на строительство Castle.Core и Castle.ActiveRecord из багажника. Кажется, что соединительная линия требует NHibernate 3.0.0, которая не соответствует нашей версии.
Решение
Почти все мои хитрости были сделаны на вкладке Security в свойствах проекта.
- Под «Зона приложения будет установлена с:» ярлыком я выбрал «(Custom)»
- Что касается разрешений, требуемых приложением, я должен был включать в себя SqlClientPermission, а также UIPermission. Чтобы свести на нет проблемы для будущего развития, я выбрал «Grant assembly неограниченный доступ к x», где выбрано разрешение. Это было сделано для обоих разрешений, показанных выше. Обратите внимание, что разрешения, которые вы хотите включить, будут на основе каждого приложения, и два случая не будут одинаковыми.
- Под кнопкой «Дополнительно ...» я не выбрал обе опции («Отлаживать это приложение с выбранным набором разрешений» и «Предоставить доступ к приложению для своего сайта происхождения»).
Кроме того, поскольку приложение и SQL Server находятся в разных доменах, мне пришлось установить строку подключения для включения домена сервера базы данных. Поэтому исходный источник данных строки подключения должен был перейти из «Источник данных = DB_SERVER» в «Источник данных = 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>
После того как все было сказано и сделано, я был успешно смог опубликовать данное приложение на доле файла из другого домена, и у пользователей установить приложение без каких-либо проблем. Применение этих шагов в наших других приложениях и использование наших недавно собранных сборок также работало как прелесть.
т ry предложения из этой темы: http://groups.google.com/group/castle-project-users/browse_thread/thread/90d8fbdcc2c363ae –
@Mauricio, к сожалению, эта ссылка по-прежнему вызывает ту же проблему. – Mike