0

私はVisual Studio 2012でOracle Databaseのデータを使用し、Visual StudioのEntityManagerでそれらを変換するC#WebServiceに取り組んでいます。

私のコンピューターでは問題なく動作しますが、サーバー IIS で公開するとすぐに次のエラーが発生しました。

System.Web.Services.Protocols.SoapException: ストア プロバイダ ファクトリ タイプ 'Oracle.DataAccess.Client.OracleClientFactory' は IServiceProvider インターフェイスを実装していません。このインターフェイスを実装するストア プロバイダーを使用します。

これは、Entity フレームワークを使用してデータベースに接続しようとしたときに発生し、この問題を修正するためにどのように確認すればよいかわかりません。

データ

私は Oracle.DataAccess v 4.112.3 および .NETFramework 4.5 を使用しています。

これは、接続文字列を含む私の web.config の一部です

  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="v11.0" />
      </parameters>
    </defaultConnectionFactory>
  </entityFramework>
<connectionStrings>
        <add name="EntitiesCCMX" connectionString="metadata=res://*/ModelCCMX.csdl|res://*/ModelCCMX.ssdl|res://*/ModelCCMX.msl;provider=Oracle.DataAccess.Client;provider connection string=&quot;data source=CCMX;password=rhcs;persist security info=True;user id=CCMX&quot;" providerName="System.Data.EntityClient" />
  <add name="HastusEntities" connectionString="metadata=res://*/ModelHASTUS.csdl|res://*/ModelHASTUS.ssdl|res://*/ModelHASTUS.msl;provider=Oracle.DataAccess.Client;provider connection string=&quot;data source=GIRO2010.WORLD;password=hastus2010;user id=HASTUS2010&quot;" providerName="System.Data.EntityClient" />
      </connectionStrings>

私がすでにやったこと:

  • サーバーで 32 ビット アプリケーションを許可しました
  • 自分のコンピューターとサーバーに oracle を再インストールしました
  • サーバーで oracle.DataAccess.dll を送信しようとしています
  • データベースにリダイレクトする oranet を構成しました

さらに何か必要な場合は、お問い合わせください。私は本当にこれに行き詰まっています...

編集 :

なんとか「修正」できましたが、理由はわかりません。1日か2日動作し続ける場合は、行ったすべてのことについて返信を投稿します.

とにかく、要するに、-8つのdll(oci、ociw32、Oracle.DataAccess、oraocci11、oraocciei11、oraocciocu11、OraOps11w、System.Data.OracleClient)を追加します-Machine.Configでこの行を変更しました(Microsoft.NET\Framework\v4 .0.30319\構成)

    <add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />

この行で (バージョン = 4.112.3.0)

   <add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />

そして、サーバーにVisual Studio professional 2012をインストールしました(そして、このインストールにより、いくつかのレパートリーまたはいくつかのパスが移動したと思います)

確信が持てたら戻ってきます。

EDIT2

何も触れずに機能しなくなりました。しかし、それは今別のエラーです。

ORA-12154: TNS:could not resolve the connect identifier specified
4

1 に答える 1

0

最初の問題は、オラクルの Web サイト http://www.oracle.com/technetwork/issue-archive/2011/11-sep/o51odt-453447.html に記載されています。これはオラクルのバージョンです。新しいバージョンが必要です。最後のエラーは単なる接続エラーです。サーバーからデータベースを tnsping してみます。動作する場合は、接続文字列を確認してください。

于 2014-01-30T12:32:24.027 に答える