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