所以在我的MVC 3站点中,我有一个路径~/_Content/*
映射到MVC路由以提供jpgs,来自数据库的gif,但我也有一个自定义VirtualPathProvider
来获取这些URL和遍历一个数据库结构,用于获取Razor(以及ASPX,如果需要)页面。
我已经完成了所有工作 - 经过一天试图弄清楚SqlCacheDependency
如何使用实体框架查询(完全是另一个故事) - 我现在可以请求Razor页面并编译并执行;当基础文件在数据库中发生变化时,它们将被重建。
下一步是将额外的ViewLocationFormats
(等)添加到我的ViewEngines中,以支持在数据库中查找视图。
但是现在我还有另外一个问题:这些页面需要继承WebViewPage
或WebViewPage<TModel>
才能使用网站的普通布局页面。
虽然我显然可以使用@inherits
我宁愿让它“工作” - 所以,合乎逻辑的做法是在内容层次结构中嵌入一个web.config,它与一个非常相似的东西。这是在标准的~/Views
文件夹中。
事情是,在尝试这个时,Asp.Net并没有注意到这一点 - 大概是因为它只是在寻找物理上在磁盘上的web.config文件。
我可以在网站的主web.config中使用<location path="_content" ...
指令 - 但理想情况下我也希望能够从内容数据库端进行细粒度控制。
如何让Asp.Net获取并理想地自动发现这些内容管理的web.configs?
答案 0 :(得分:0)
可能你对这方面做的很少,看下面链接的问题和答案,我的要点是,如果你在web应用程序文件夹中没有通常的web.config,你从哪里获得所需的连接字符串访问数据库?无论如何都需要设置的单一和默认入口点,或者除非您使用其他文本文件或环境变量自定义所有内容,否则您将无法知道如何访问和连接到数据库。
见amyway:
Using ConfigurationManager to load config from an arbitrary location