基础Web应用程序中的httpModule不会在子项目中加载

时间:2011-04-07 16:52:00

标签: asp.net vb.net httpmodule

VB.Net 2k5 Web应用程序

基本应用程序有一个带有httpModules部分的web.config文件:

子项目编译到与基础应用程序相同的bin文件夹,但是我收到此消息:

  

分析程序错误消息:无法加载   文件或程序集   'Castle.MonoRail.Framework'或其中之一   它的依赖关系。系统不能   找到指定的文件。   (c:\ inetpub \ wwwroot \ web.config行   132)

     

来源错误:

     

第131行:[<] httpModules [>]

     

第132行:[<]添加name =“monorail”   类型=“Castle.MonoRail.Framework.EngineContextModule,   Castle.MonoRail.Framework“/ [>] ---错误在这里

     

线   133:[<] add name =“ScriptModule”   类型=“System.Web.Handlers.ScriptModule,   System.Web.Extensions程序,   版本= 1.0.61025.0,文化=中立,   公钥= 31bf3856ad364e35" / [>]

     

第134行:[<]添加name =“active-record”   类型=“Castle.ActiveRecord.Framework.SessionScopeWebModule,   Castle.ActiveRecord“/>

3 个答案:

答案 0 :(得分:1)

我解决了这个问题。首先,是的,子项目正在构建到父bin文件夹。

问题是,我将父文件夹和子文件夹都设置为IIS中的应用程序。我让孩子只是一个虚拟文件夹,问题就消失了。

为什么这样做?我试过在HTTPModules周围乱码,发现MS ScriptModule没有问题,但是如果我先移动ActiveRecord模块,那就有问题了。我认为如果这些模块试图不止一次加载就会出现问题。 (只是一个猜测。)

或者可能是孩子的安全性,因为它是一个应用程序,不允许从另一个应用程序加载程序集。

现在正在努力解决其他问题。感谢。

答案 1 :(得分:0)

您是否在Web应用程序项目中添加了对Castle.MonoRail.Framework的引用?

答案 2 :(得分:0)

您的子项目是否配置为使用父bin文件夹?

我假设这样的布局:

 app
   /bin
   /subapp
     /bin

除非您更改了配置中的探测路径,否则subapp将不会在父bin中看到任何内容。这适用于web.config中定义的任何内容,例如引用程序集的配置节,httpmodules等。