Стар въпрос тук, но току-що попаднах на него и исках да споделя още подробности.
Първо, най-лесното решение, ако трябва да направите <clear/>
във вашия блок connectionStrings е да добавите празен OraAspNetConString запис за низ за връзка обратно във вашия web.config:
<connectionStrings>
<clear />
<add name="OraAspNetConString" connectionString=" "/>
</connectionStrings>
Какво се случва, когато инсталирате пакета Oracle .NET на която и да е от вашите машини е, че инсталира много различни доставчици във вашия machine.config заедно с OraAspNetConString като connectionString на ниво машина. <clear/>
елемент се отървава от този OraAspNetConString и благодарение на допълненията machine.config на Oracle, всички други доставчици на Oracle, заредени по подразбиране, се сриват, когато не могат да намерят connectionString.
Другият отговор тук, където изследвахте използването на елемента за доставчици на членство, не работи, защото повечето от другите доставчици на oracle, добавени в machine.config, все още ще търсят този OraAspNetConString така че изчистването само на този доставчик не ви помага.
Това са всички доставчици, които са инсталирали в моята машина.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>
Така че, ако не искате да добавите празния OraAspNetConString, ще трябва да се уверите, че или <clear/>
всеки един от следните доставчици на Oracle или влезте и добавете <remove name=x />
елемент към всеки клас доставчик по този начин:
<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>
Никога не съм имал работа с код за карта на сайта или за наблюдение на здравето в моето уеб приложение, но все пак трябваше ръчно да добавя тези <remove/>
елементи за различните доставчици в моя web.config или нещо ще се срине, търсейки низ за връзка OraAspNetConString, който не е там.