我有一个网站,它有一个虚拟目录,也包括一个网站,当我试图从虚拟目录启动一个页面时,我收到一个IIS 7.5错误,名称(从连接字符串)已经在集合中。在我在应用程序池中添加域用户作为身份之前,这不是问题。有人知道为什么会这样吗?在我的印象中,子级应用程序的web。默认情况下,配置将覆盖父配置。在我添加一个自定义标识之前,这是正常的。
页面上的错误是"解析器错误消息:条目'dbname'已被添加。"
dbname同时存在于两个连接字符串中(即父目录和虚拟目录)。我不能删除其中一个连接字符串,因为虚拟目录仅为测试目的创建,但在生产中,它作为自己的网站运行。
子网站。无论应用是什么,配置都不会覆盖父类。所有web。配置将一直堆积到主应用程序的根目录。为了使子应用程序文件夹使用已在使用的连接字符串键,必须首先删除它或清除所有连接字符串。如果你想让它成为一个真正独立的子应用程序,把它添加到你的连接字符串中:
<connectionStrings>
<clear />
<your connection string>
<connectionStrings>
如果您只想删除单个连接字符串,请使用:
<remove key="yourConnectionStringName" />
@u84six,
今天这件事发生在我身上。我有一些网站和网络服务在同一个根网站。根是默认的iis网站(默认网站),我认为它指向C:Inetpubwwwroot。这是一个开发环境。在我看了这个答案后,我发现我的一个webservices是根网站(仍然不确定是什么改变了它…也许visual studio(从2010年迁移到2012年之后)。该web服务正在使用冲突的connectionString。我把路径改回C:Inetpubwwwroot,一切都恢复正常。
也许你也遇到过类似的事情。