Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Problema Estranho de Associação ASP


Pergunta antiga aqui, mas acabei de encontrá-la e queria compartilhar mais alguns detalhes.

Primeiro, a solução mais fácil se você precisar fazer um <clear/> no seu bloco connectionStrings é adicionar uma entrada de connectionstring OraAspNetConString em branco de volta ao seu web.config:
<connectionStrings>
    <clear />
      <add name="OraAspNetConString" connectionString=" "/>    
</connectionStrings>

O que acontece quando você instala o pacote Oracle .NET em qualquer uma de suas máquinas, ele instala vários provedores diferentes em seu machine.config junto com o OraAspNetConString como uma connectionString no nível da máquina. O <clear/> O elemento se livra desse OraAspNetConString e, graças às adições machine.config do Oracle, todos os outros provedores Oracle carregados por padrão estão travando quando não conseguem encontrar o connectionString.

A outra resposta aqui, onde você explorou o uso do elemento para provedores de associação, não funcionou porque a maioria dos outros provedores oracle adicionados ao machine.config ainda estarão procurando por esse OraAspNetConString portanto, limpar apenas um provedor não ajuda você.

Estes são todos os provedores que eles instalaram no meu 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>

Portanto, se você não quiser adicionar o OraAspNetConString em branco, terá que se certificar de que <clear/> cada um dos seguintes provedores Oracle ou vá e adicione um <remove name=x /> elemento para cada classe de provedor assim:
<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>

Eu nunca lidei com nenhum código siteMap ou Health Monitoring em meu aplicativo da web, mas ainda tive que adicionar manualmente esses <remove/> elementos para os diferentes provedores no meu web.config ou algo iria falhar procurando por uma string de conexão OraAspNetConString que não estava lá.