在IIS/ASP.Net中的.NET 1.1应用程序中创建.NET 3.0子应用程序

Kar*_*ren 5 asp.net iis asp.net-1.1 web-applications asp.net-2.0

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

* http://www.domain.com/ < Main App
* http://www.domain.com/newapp < New App
Run Code Online (Sandbox Code Playgroud)

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

我在XP专业版的IIS6中测试这个,所以不确定这是否有所作为.主应用程序是dotnet 1.1,新应用程序是3.0.

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

Parser Error Message: Unrecognized attribute 'inheritInChildApplications'
Run Code Online (Sandbox Code Playgroud)

Kev*_*che 4

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

为了让您的应用程序忽略根目录中的设置,您需要应用 location 元素,并将路径的继承InChildApplications 属性设置为 false。

就像是:

<location path="." inheritInChildApplications="false">
 <settings.....>
</location
Run Code Online (Sandbox Code Playgroud)

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