5

我基本上是在尝试做与这个问题相同的事情,在文件夹中创建一个新应用程序,以便可以按如下方式访问它。

* http://www.domain.com/ < Main App
* http://www.domain.com/newapp < New App

问题是 newapp 正在从主应用程序读取 web.config,这会导致错误,因为它没有所有相同的 dll 等。
对于新应用程序,在 IIS 中,起点设置在 /newapp,所以我我不确定它为什么从 / 读取 web.config。它被设置为它自己的应用程序。

我在 XP Pro 上的 IIS6 中对此进行测试,所以不确定这是否会有所不同。主应用是 dotnet 1.1,新应用是 3.0。

编辑:将 'inheritInChildApplications 添加到<location> 在 1.1 中不起作用,您会收到错误消息:

Parser Error Message: Unrecognized attribute 'inheritInChildApplications'
4

2 回答 2

4

这是设计使然。Web.config 从根目录读取到相关的应用文件夹。除非您的应用程序更改它,否则根目录中的所有更改都会应用到您的应用程序。阅读此MSDN 链接以更好地了解 Web.config 层次结构和继承。

为了让您的应用忽略根中的设置,您需要应用 location 元素,并将路径的 inheritInChildApplications 属性设置为 false。

就像是:

<location path="." inheritInChildApplications="false">
 <settings.....>
</location

例如,如果您在根 web.config 中有一个仅特定于根应用程序的部分,则将 location 元素包裹在该部分周围。使用“.”的路径 表示您希望此应用文件夹下方路径中的所有项目不继承此部分。

于 2010-03-31T19:16:56.917 回答
0

如前所述-inheritInChildApplications 在.net 1.1 中不起作用。

我在这个领域做了很多研究,我最初来到这里寻找解决方案。该主题并没有明确说明这是一个 1.1 目标问题。

如果您遇到问题并且您的应用程序是 2.0 或更高版本,请查看本文以获取有关 inheritInChildApplications 属性的大量详细信息:

于 2010-04-10T01:30:46.897 回答