Domanda

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

È stato utile?

Soluzione

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

Altri suggerimenti

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top