“Entry has already been added” - Two Separate App Pools

☆樱花仙子☆ 提交于 2019-12-17 19:42:58

问题


I am creating a test version of an existing production site. A virtual web service application exists inside the site - and the two web configs have the same connection string.

There are no "clear" tags in the production web configs and the site and the web service co-exist merrily on two separate app pools.

On the test site however, every time I browse to the webservice URL I receive the Configuration Error "The entry 'ConnectionString' has already been added."

The test site and corresponding virtual application use their own separate app pools. Any ideas?

Thanks Jim


回答1:


Web.config inheritance happens even between different appPools. If you want to stop this behavior, you should add the attribute enableConfigurationOverride="false" to your appPool in the applicationHost.config file (located in %WINDIR%\System32\inetsrv\Config and %WINDIR%\SysWOW64\inetsrv\config) as in the following example:

<add name="MyAppPool" autoStart="true" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" enableConfigurationOverride="false">
    <processModel identityType="NetworkService" />
</add>

Matteo




回答2:


I think the problem is related that they are one site inside the other. Like a Website with a Virtual Directory inside.

In this case... the Virtual Directory web.config is "inheriting" the parent web.config

Here you can see details of how to solve this: How to stop inheritance of <configSections>in Web.Config

Other options: https://stackoverflow.com/a/367372/7720

If the problem is in other parts of your web.config (not in the sections) you can just wrap the conflicting part with <location path="." inheritInChildApplications="false">.

Other option could be let the webservice grab the connection from the website.



来源:https://stackoverflow.com/questions/23367347/entry-has-already-been-added-two-separate-app-pools

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!