Stará otázka, ale právě jsem na ni narazil a chtěl se podělit o další podrobnosti.
Za prvé, nejjednodušší řešení, pokud potřebujete provést <clear/>
ve vašem bloku connectionStrings je přidat prázdný záznam OraAspNetConString connectionstring zpět do vašeho web.config:
<connectionStrings>
<clear />
<add name="OraAspNetConString" connectionString=" "/>
</connectionStrings>
Co se stane, když nainstalujete balíček Oracle .NET na každém z vašich počítačů nainstaluje spoustu různých poskytovatelů do vašeho machine.config spolu s OraAspNetConString jako connectionString na úrovni počítače. <clear/>
prvek se zbaví tohoto OraAspNetConString a díky dodatkům Oracle machine.config všichni ostatní poskytovatelé Oracle načtení ve výchozím nastavení padají, když nemohou najít connectionString.
Druhá odpověď zde, kde jste zkoumali použití prvku pro poskytovatele členství, nefungovala, protože většina ostatních poskytovatelů oracle přidaných do machine.config bude stále hledat tento OraAspNetConString takže vymazání pouze jednoho poskytovatele vám nepomůže.
Toto jsou všichni poskytovatelé, které nainstalovali do mého machine.config:
<membership><providers>
<add name="OracleMembershipProvider" type="Oracle.Web.Security.OracleMembershipProvider, Oracle.Web, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionStringName="OraAspNetConString" applicationName="" />
</providers></membership>
<profile><providers>
<add name="OracleProfileProvider" type="Oracle.Web.Profile.OracleProfileProvider, Oracle.Web, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionStringName="OraAspNetConString" applicationName=""/>
</providers></profile>
<roleManager><providers>
<add name="OracleRoleProvider" type="Oracle.Web.Security.OracleRoleProvider, Oracle.Web, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionStringName="OraAspNetConString" applicationName=""/>
</providers></roleManager>
<siteMap><providers>
<add name="OracleSiteMapProvider" type="Oracle.Web.SiteMap.OracleSiteMapProvider, Oracle.Web, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionStringName="OraAspNetConString" applicationName="" securityTrimmingEnabled="true"/>
</providers></siteMap>
<webParts>
<personalization>
<providers>
<add name="OraclePersonalizationProvider" type="Oracle.Web.Personalization.OraclePersonalizationProvider, Oracle.Web, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionStringName="OraAspNetConString" applicationName=""/>
</providers>
</personalization>
</webParts>
<healthMonitoring><providers>
<add name="OracleWebEventProvider" type="Oracle.Web.Management.OracleWebEventProvider, Oracle.Web, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionStringName="OraAspNetConString" buffer="true" bufferMode="OracleNotification"/>
</providers></healthMonitoring>
Pokud jste tedy nechtěli přidat prázdný OraAspNetConString, museli byste se ujistit, že buď <clear/>
každého z následujících poskytovatelů Oracle nebo přejděte a přidejte <remove name=x />
prvek do každé třídy poskytovatelů takto:
<membership><providers>
<remove name="OracleMembershipProvider" />
</providers></membership>
<profile><providers>
<remove name="OracleProfileProvider" />
</providers></profile>
<roleManager><providers>
<remove name="OracleRoleProvider" />
</providers></roleManager>
<siteMap><providers>
<remove name="OracleSiteMapProvider" />
</providers></siteMap>
<healthMonitoring><providers>
<remove name="OracleWebEventProvider" />
</providers></healthMonitoring>
Nikdy jsem se nezabýval žádným kódem SiteMap nebo Health Monitoring ve své webové aplikaci, ale stále jsem musel ručně přidat tyto <remove/>
prvky pro různé poskytovatele v mém web.config nebo něco by se zhroutilo při hledání připojovacího řetězce OraAspNetConString, který tam nebyl.