Web.Config在数据库中,可能吗?

时间:2011-10-20 09:43:00

标签: asp.net asp.net-mvc asp.net-mvc-3

所以在我的MVC 3站点中,我有一个路径~/_Content/*映射到MVC路由以提供jpgs,来自数据库的gif,但我也有一个自定义VirtualPathProvider来获取这些URL和遍历一个数据库结构,用于获取Razor(以及ASPX,如果需要)页面。

我已经完成了所有工作 - 经过一天试图弄清楚SqlCacheDependency如何使用实体框架查询(完全是另一个故事) - 我现在可以请求Razor页面并编译并执行;当基础文件在数据库中发生变化时,它们将被重建。

下一步是将额外的ViewLocationFormats(等)添加到我的ViewEngines中,以支持在数据库中查找视图。

但是现在我还有另外一个问题:这些页面需要继承WebViewPageWebViewPage<TModel>才能使用网站的普通布局页面。

虽然我显然可以使用@inherits我宁愿让它“工作” - 所以,合乎逻辑的做法是在内容层次结构中嵌入一个web.config,它与一个非常相似的东西。这是在标准的~/Views文件夹中。

事情是,在尝试这个时,Asp.Net并没有注意到这一点 - 大概是因为它只是在寻找物理上在磁盘上的web.config文件。

我可以在网站的主web.config中使用<location path="_content" ...指令 - 但理想情况下我也希望能够从内容数据库端进行细粒度控制。

如何让Asp.Net获取并理想地自动发现这些内容管理的web.configs?

1 个答案:

答案 0 :(得分:0)

可能你对这方面做的很少,看下面链接的问题和答案,我的要点是,如果你在web应用程序文件夹中没有通常的web.config,你从哪里获得所需的连接字符串访问数据库?无论如何都需要设置的单一和默认入口点,或者除非您使用其他文本文件或环境变量自定义所有内容,否则您将无法知道如何访问和连接到数据库。

见amyway:

Using ConfigurationManager to load config from an arbitrary location

Loading a different web.config file at runtime fo ASP.NET