【问题标题】:Url routing and web.config of nested folder嵌套文件夹的 URL 路由和 web.config
【发布时间】:2010-03-01 08:47:50
【问题描述】:

我正在使用以下格式的 URL 路由(使用 WebForms):

http://host/project/{projectid}/{pageName}

另一种选择是用户正在引用子应用程序:

http://host/project/{projectid}/{application}/{pageName}

子应用程序不是一个新的网络应用程序,只是一个虚拟目录。
我的子应用程序确实有一个 web.config,其中包含一些特定的 appsettings/connstrings。

没有 URL 路由一切正常。

但是,当我在路由表单中请求 URL 时,子应用程序的 web.config 没有得到处理,并且我在所有 appsettings/connstrings 上都获得了一个空引用(通过 ConfigurationManager)。

这是我的自定义处理程序中的代码:

string path = String.Format(_pagesFormat, application, pageName);   
return (IHttpHandler) BuildManager.CreateInstanceFromVirtualPath(path, typeof(Page));

如果我将路线更改为http://host/{application}/{projectid}/{pageName},它会起作用
这可能会触发 IIS 也加载虚拟目录的 web.config。

我能以某种方式强制加载嵌套 web.config 的设置吗?

编辑:
此人也有类似问题:
http://forums.asp.net/p/1452479/3317775.aspx

有什么想法吗?

【问题讨论】:

    标签: asp.net web-config url-routing


    【解决方案1】:

    由于某种原因,system.web 标签和其他一些标签正在
    处理 web.config(位于虚拟目录中)。

    我决定将我的应用程序设置和连接字符串设置放在根目录下的两个单独文件中:

    • 根目录中的web.config(IS、编译、处理程序配置)
    • web.AppSettings.config 在根目录
    • 根目录中的 web.Connections.config

    • 每个虚拟目录的 web.config(用户控制、母版页配置)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-05
      • 1970-01-01
      • 2020-11-05
      • 1970-01-01
      • 1970-01-01
      • 2014-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多