我正在使用以下格式的URL路由(使用WebForms):
http://host/project/{projectid}/{pageName}
另一个选择是用户正在引用子应用程序:
http://host/project/{projectid}/{application}/{pageName}
子应用程序不是新的Web应用程序,只是一个虚拟目录 我的子应用程序确实有一个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
有什么想法吗?
答案 0 :(得分:1)
出于某种原因,system.web标记和其他一些标记 正由<处理> web.config(驻留在虚拟目录中)。
我决定将我的应用程序设置和连接字符串设置放在根目录中的两个单独的文件中:
根目录中的web.Connections.config
每个虚拟目录的web.config(用户控件,母版页配置)