1

Visual Studio 2013 でカスタム コードを使用せずに基本的な HTML Lightswitch アプリケーションを作成しました。これは Oracle データベースに接続し、ローカルで正常に動作します。

IIS を使用してアプリをサーバーにデプロイし、作成した URL に移動するとアプリが読み込まれますが、アプリが Oracle データベースから値のリストを通常表示する前に、「基になるプロバイダーが EnlistTransaction で失敗しました」というエラーが表示されます。

次のエラーを見つけるためにスタックトレースを実行しました。アプリが Oracle データ アクセス クライアント (Oracle.ManagedDataAccessDTC) を検出していないようです。

[Microsoft.LightSwitch.DataService][Application:Error]
[LightSwitchServiceApplication.P167:CON_APP_TAXes] An exception has occurred:  
Microsoft.LightSwitch.DataServiceOperationException: The underlying provider 
failed on EnlistTransaction. ---> System.Data.EntityException: The underlying 
provider failed on EnlistTransaction. ---> 
System.TypeInitializationException: The type initializer for 
'OracleInternal.MTS.DTCPSPEManager' threw an exception. ---> 
System.IO.FileNotFoundException: Could not load file or assembly 
'Oracle.ManagedDataAccessDTC, Version=4.121.2.0, Culture=neutral, 
PublicKeyToken=89b483f429c47342' or one of its dependencies. The system 
cannot find the file specified.

Oracle.ManagedDataAccessDTC を含む ODAC 12c リリース 4(12.1.0.2) インストーラーを使用して、自分のマシンに Oracle Data Access クライアントをローカルにインストールしました。

私のマシンとサーバーに同じバージョンの Oracle.ManagedDataAccessDTC がインストールされていることを確認しました。

4

1 に答える 1

0

この問題は、データ ソース ドライバのタイプを Oracle データベース (ODP.NET、管理対象ドライバ) から Oracle データベース (ODP.NET、管理対象外ドライバ) に切り替えることで解決されました。

于 2016-08-22T16:04:16.563 に答える