2011-04-07 1 views
2

VB.Net 2k5 Web ApplicationHttpModule из базы веб-приложение не загружается в подпроекта

Основание приложение имеет файл web.config с секцией HttpModules:

Суб-проект компилируется тот же бен папку в качестве базового приложения, но я получаю это сообщение:

Parser Error Message: Could not load file or assembly 'Castle.MonoRail.Framework' or one of its dependencies. The system cannot find the file specified. (c:\inetpub\wwwroot\web.config line 132)

Source Error:

Line 131: [<]httpModules[>]

Line 132:         [<]add name="monorail" type="Castle.MonoRail.Framework.EngineContextModule, Castle.MonoRail.Framework"/[>] --- Error here

Line 133:         [<]add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/[>]

Line 134:         [<]add name="active-record" type="Castle.ActiveRecord.Framework.SessionScopeWebModule, Castle.ActiveRecord"/>

ответ

1

Я решил это. Во-первых, да, подпроект строился на родительскую папку bin.

Проблема была, у меня были как родительская, так и дочерняя папки, установленные как приложения в IIS. Я сделал ребенка просто виртуальной папкой, и проблема исчезла.

Зачем это работало? Я попытался перетасовать HTTPModules и обнаружил, что MS ScriptModule не имеет проблемы, но если я сначала переместил модуль ActiveRecord, у него возникла проблема. Я думаю, что у этих модулей есть проблемы, если они пытаются загрузиться не один раз. (Просто догадаться.)

Возможно, возможно, что безопасность для ребенка, так как это приложение, не позволяло загружать сборки из другого приложения.

Сейчас он работает над другими вопросами. Благодарю.

+0

Web.config наследуются полностью от машинного root. Итак, да, модули наследуются. но если приложение не видит сборку, оно не загружается и будет вызывать ошибку. Сборка должна находиться в хорошо известном месте - GAC или папке bin приложения. См. Мой ответ выше. –

0

вы добавили ссылку на Castle.MonoRail.Framework в вашем приложении проекта веб-страницы?

0

Ваш подпроект настроен на использование родительской папки bin?

Я предполагаю, что макет так:

app 
    /bin 
    /subapp 
    /bin 

, если вы не изменили зондирующий путь в конфиге, SubApp ничего не увидит в родительском бункере. Это относится ко всему, что определено в файле web.config, например, в разделах конфигурации, httpmodules и т. Д., Которые ссылаются на сборки.

+1

Хм ... как я могу изменить «пробный путь» в конфиге? Это может по-прежнему помогать с некоторыми проблемами. –