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