簡體   English   中英

請求的數據庫在連接字符串中沒有設置有效的ADO.NET提供程序名稱

[英]The requested database does not have a valid ADO.NET provider name set in the connection string

我正在嘗試使用Oracle.ManagedDataAccess將C#應用程序連接到oracle數據庫。 但是,當我嘗試創建數據庫時,出現以下錯誤。 關於我設置不正確的任何想法? 我知道提供程序名稱已正確設置,因為我可以使用另一個C#應用程序以完全相同的方式連接到數據庫。

“所請求的數據庫ConnectionString.SomeName在連接字符串中沒有設置有效的ADO.NET提供程序名稱”

在machine.config上:

<add name="ConnectionString.SomeName" providerName="Oracle.ManagedDataAccess.Client" connectionString="Data Source=databaseSource;User Id=some_id;Password=some_password" />

在web.config上:

<appSettings>
  <add key="ConnectionString1" value="ConnectionString.SomeName"/>
</appSettings>

我的代碼:

DatabaseProviderFactory factory = new DatabaseProviderFactory();
Database = factory.Create(ConfigurationManager.AppSettings["ConnectionString1"]);

在Machine.config中,檢查以確保您設置了兩個部分。 一個在中,另一個在中。以下示例:

    <appSettings>
    <add key="ConnectionString.SomeName" value="Data Source=databaseSource;User Id=some_id;Password=some_password"/>
</appSettings>

<connectionStrings>
    <add name="ConnectionString.SomeName" connectionString="Data Source=databaseSource;User Id=some_id;Password=some_password" providerName="Oracle.DataAccess.Client"/>
</connectionStrings>

appSettings條目中的“鍵”應與connectionStrings條目中的“名稱”匹配。 例如,在您的情況下,應在appSettings中包含以下條目:

<add key="ConnectionString.SomeName" value="Data Source=dataSource;User ID=some_id;Password=some_password" />

對我有用的解決方案是將以下內容添加到App.config / Web.config中(在配置標簽中):

  <system.data>
    <DbProviderFactories>
      <remove invariant="Oracle.ManagedDataAccess.Client" />
      <add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
    </DbProviderFactories>
  </system.data>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM