在IIS和web.config问题中嵌套Web应用程序

时间:2014-02-05 07:39:20

标签: asp.net iis-7

当前安装

我在IIS默认网站下有两个Web应用程序app_A和app_B(与app_A相同的应用程序,但用于测试目的)。指向服务器的域www.mydomain.com需要访问app_A。这可以通过将物理路径从\ inetpub \ wwwroot \更改为\ inetpub \ wwwroot \ app_A来完成。 第二个应用程序应该在www.mydomain.com/app_B /

下访问

问题

访问www.mydomain.com/app_B/时,因为它现在是app_A的子目录,它会从app_A看到web.config,并且在访问www.mydomain时收到类似“web.config中的重复条目”的错误。 com / app_B / application。我可以通过首先删除标记来消除错误,然后再次声明app_B web.config中的条目。

问题

  • 有没有其他方法可以按顺序进行安装app_A可以从www.mydomain.com/和app_B从www.mydomain.com/app_B访问,而不会弄乱如上所述的web.config文件?
  • 对于当前安装,有没有办法在IIS上设置某些东西,以便app_B不会从app_A看到所有web.config,因为它是一个子目录?
  • 对于当前安装,您是否通过使用app_B应用程序的删除标记看到任何实际问题(可能是安全性问题)?
  • 对于当前的安装,我观察到一个奇怪的行为。如果我登录到app_A和app_B并从app_A注销,它也会从app_B注销(并非总是如此)。我正在使用Active Directory进行身份验证。我是否需要在app_B的web.config中更改某些内容才能说它是完全不同的应用程序?

1 个答案:

答案 0 :(得分:0)

我知道这是一个老问题,你可能已经找到了解决方案。如果您需要答案我会回复。

有两种方法可以避免合并父配置文件和子配置文件。要么你可以添加 inheritInChildApplications ="假"在父配置文件中标记。例如:

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

你可以添加&#34;删除&#34;标签或&#34;清除&#34;在child的配置文件中清除父设置。

此外,我没有通过清除父母设置看到任何安全威胁。

您是否有可能在父母和子应用程序的身份验证中使用相同的cookie名称?如果是这种情况,一旦您登录到子应用程序,将覆盖父应用程序生成的cookie。尝试为至少一个应用程序指定cookie的名称。