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 がインストールされていることを確認しました。