是否可以完全否定子文件夹中的web.config?
显然,我在root中有一个web.config。
如果我有一个名为“MyApp”的子文件夹,我可以在那里编写一堆代码并让它在没有引用root的web.config的情况下运行吗?它将拥有自己的web.config,甚至不会在root中引用“更高”的web.config。
我正在寻找的是完整的App隔离。我希望能够在现有站点的子文件夹中编写一个应用程序,它忽略了它上面的整个web.config层次结构 - 应用程序就是一个岛屿本身。
我知道我可以使用“清晰”元素,但这是最好的方法吗?只需在每个顶级元素下面加上“清晰”?只是想知道是否还有另一种方式。
重复Will a child application inherit from its parent web.config?
答案 0 :(得分:9)
在根目录中的web.config文件中,使用以下元素包装<system.web>
元素:<location path="." inheritInChildApplications="false"></location>
请查看此链接以获取参考:
答案 1 :(得分:1)
没有。通过设计共享托管和简单的缘故。
通过允许显式锁定/解锁配置,IIS7稍微改变了一点。
答案 2 :(得分:1)
是的,您必须清除想要覆盖的那些部分。考虑一下这一点,这是有道理的,因为清除所有内容的唯一方法可能会使得很难找到清除它的内容。 Clear通常会重置所有内容,包括web.configs中的root web.configs和服务器上frameworks / config文件夹中定义的machine.config。
请注意,您还将无法访问/ bin文件夹,/ app_code文件夹等。这可能是您想要的也可能不是。
您是否可以使用主机创建子应用程序也是另一个需要考虑的问题。
答案 3 :(得分:1)
听起来你应该创建一个完全是另一个应用程序根目录的虚拟目录。
答案 4 :(得分:0)
我刚刚在工作中遇到过这个问题,我的解决方案是创建一个新网站,而不是试图在现有网站下嵌套我的应用程序。我保持新应用程序(即www.mysite.com)的域映射相同,但更改了端口号/映射。
因此,我可以在www.mysite.com:88上使用我的新应用程序,而不必使用子域名。
这里需要注意的是,我的应用程序是一个Web服务,因此我必须在URL中指定端口号。它可能不是你的选择,但我想我会发布这个,它可以帮助我的情况。
<location path="." inheritInChildApplications="false"></location>
解决方案对我来说不是一个选项,因为在ASP.Net Framework 4.0之前inheritInChildApplications
似乎不存在?