在IIS上部署Lightswitch应用程序时未能找到'Oracle.ManagedDataAccessDTC'

问题描述:

我在Visual Studio 2013中创建了一个基本的HTML Lightswitch应用程序,没有自定义代码。它连接到Oracle数据库并在本地运行正常。在IIS上部署Lightswitch应用程序时未能找到'Oracle.ManagedDataAccessDTC'

我将应用程序部署到服务器与IIS和应用程序加载时,我浏览我创建的网址,但我得到的“底层提供商失败EnlistTransaction”错误之前,应用程序通常会显示从Oracle的值列表数据库。

我跑了一个stacktrace找到以下错误。它看起来像应用程序是没有找到Oracle数据访问客户端(Oracle.ManagedDataAccessDTC):本地使用ODAC 12C 4版(12.1.0.2)安装我安装了Oracle数据访问客户端在我的机器上

[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。

我确认我的机器和服务器安装了相同版本的Oracle.ManagedDataAccessDTC。

此问题已从将数据源驱动程序类型从Oracle数据库(ODP.NET,托管驱动程序)切换到Oracle数据库(ODP.NET,非托管驱动程序)解决。