私は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="data source=CCMX;password=rhcs;persist security info=True;user id=CCMX"" 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="data source=GIRO2010.WORLD;password=hastus2010;user id=HASTUS2010"" 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