por Cesar Cassiano Schimanco

A coluna "InvariantName" está restrita a conter valores exclusivos. O valor "MySql.Data.MySqlClient" já existe

Este erro acontece algumas vezes ao adicionar um Provider MySql e SQLite no DbProviderFactories. Veja as mensagens mais comuns deste tipo de erro.

MySql:

  • Ocorreu um erro ao criar o manipulador de seção de configuração de system.data: A coluna 'InvariantName' está restrita a conter valores exclusivos. O valor 'MySql.Data.MySqlClient' já existe.
  • An error occurred creating the configuration section handler for system.data: Column 'InvariantName' is constrained to be unique. Value 'MySql.Data.MySqlClient' is already present.

SQLite:

  • An error occurred creating the configuration section handler for system.data: Column 'InvariantName' is constrained to be unique. Value 'System.Data.SQLite' is already present.
  • Ocorreu um erro ao criar o manipulador de seção de configuração de system.data: A coluna 'InvariantName' está restrita a conter valores exclusivos. O valor 'System.Data.SQLite' já existe.

Resolvemos o problema utilizando o remove invariant  antes de adicionar o DbProviderFactories

<configuration>
  <system.data>
    <DbProviderFactories>
      <remove invariant="MySql.Data.MySqlClient" />
      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.7.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
      <remove invariant="System.Data.SQLite"/>
      <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite"/>
    </DbProviderFactories>
  </system.data>
</configuration>

 

Erro na integra.

 

Erro de Servidor no Aplicativo '/'.

Não foi possível localizar o Provedor de Dados .Net Framework solicitado. Talvez ele não esteja instalado.

Descrição: Ocorreu uma exceção sem tratamento durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código.

Detalhes da Exceção: System.ArgumentException: Não foi possível localizar o Provedor de Dados .Net Framework solicitado. Talvez ele não esteja instalado.

Erro de Origem:

Linha 119:        {
Linha 120:            ConnectionStringSettings connectionString = ConfigurationManager.ConnectionStrings[ConfigurationManager.AppSettings["currentConnectionstring"]];
Linha 121:            DbProviderFactory factory = DbProviderFactories.GetFactory(connectionString.ProviderName); Linha 122:
Linha 123:            conn = factory.CreateConnection();

 

Comentários

Carregando comentários

Postar um novo comentário



Processando...