Gammal fråga här men jag sprang precis på den och ville dela med mig av lite mer detaljer.
Först, den enklaste lösningen om du behöver göra en <clear/>
i ditt connectionStrings-block är att lägga till en tom OraAspNetConString-anslutningssträngpost tillbaka till din web.config:
<connectionStrings>
<clear />
<add name="OraAspNetConString" connectionString=" "/>
</connectionStrings>
Vad händer när du installerar Oracle .NET-paketet på någon av dina maskiner installerar den massor av olika leverantörer i din machine.config tillsammans med OraAspNetConString som en anslutningssträng på maskinnivå. <clear/>
element blir av med den OraAspNetConString och tack vare Oracles machine.config-tillägg kraschar alla andra Oracle-leverantörer som är inlästa som standard när de inte kan hitta connectionString.
Det andra svaret här där du utforskade att använda elementet för medlemskapsleverantörer fungerade inte eftersom de flesta andra orakelleverantörer som lagts till i machine.config fortfarande kommer att leta efter den OraAspNetConString så att bara rensa en leverantör hjälper dig inte.
Det här är alla leverantörer som de installerade i min 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>
Så om du inte vill lägga till den tomma OraAspNetConString måste du se till att du antingen <clear/>
var och en av följande Oracle-leverantörer eller gå in och lägg till en <remove name=x />
element till varje leverantörsklass så här:
<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>
Jag har aldrig hanterat någon siteMap eller Health Monitoring-kod i min webbapp men jag var fortfarande tvungen att manuellt lägga till dessa <remove/>
element för de olika leverantörerna i min web.config eller något skulle krascha och leta efter en OraAspNetConString-anslutningssträng som inte fanns där.