我创建了一个自定义的http模块,并希望将此模块添加到Web配置中。 Web应用程序是一个包含多个“子应用程序”的项目。子应用程序只是一个文件夹,在该文件夹中它有自己的web.config。我这样做是因为每个应用程序都有自己的应用程序相关内容。
现在我创建了一个自定义的http模块。将此添加到根web.config时,模块正常工作。将http模块配置添加到目录级web.config(例如/Applications/MyApplication/web.config)时,模块不再被初始化。
这是正常工作的root配置。
<httpModules>
<add name="MyFirstHttpModule" type="CustomModule.CustomModule,CustomModule" />
</httpModules>
请帮助
答案 0 :(得分:1)
ASP.net配置已经支持配置中断。您只需在指定的文件夹中添加新的web.config。
ASP.NET网站的Web.config是继承链的一部分。您网站的子文件夹可以包含Web.config。这允许在站点级别设置常规设置,并在必要时覆盖它们。基本Web.config中未在子文件夹中重写的任何设置都保持有效,因此“子”Web.config可能非常小。您可以继续嵌套它们,因此子子文件夹可以根据需要获得自己的Web.config。
一个很好的例子是ASP.NET MVC应用程序的View文件夹中的Web.config文件,它可以防止直接查看视图模板
您可以阅读更多here。
如果收到SubDir1目录中的文件的请求 不存在,ASP.NET开始搜索配置层次结构, 从最本地的Web.config文件开始(位于 当前目录(如果存在)或父目录)。 ASP.NET是 为customErrors搜索错误元素(ASP.NET设置 schemaCode属性等于“404”的Schema元素。一旦 ASP.NET查找404错误的配置设置,即URL redirect属性作为响应返回。