我们有一个遗留的VB.NET(ASPX)应用程序,我们需要在旧服务器崩溃后迁移到新服务器,不幸的是我们一直遇到一个奇怪的Oracle问题(可能是由32位/ 64位冲突问题引起的)。以下是我们在IIS 7.5下运行时在新服务器上收到的错误消息:
The provider is not compatible with the version of Oracle client
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: Oracle.DataAccess.Client.OracleException: The provider is not compatible with the version of Oracle client
但是,在Visual Studio 2010中完全相同的服务器上运行完全相同的应用程序时,该应用程序可以正常运行。
我尝试过的一些事情......将Oracle.DataAccess.dll文件从当前的32位更改为64位文件,结果相同(在IIS中不起作用,在Visual Studio中工作);将应用程序部署为程序包或网站(相同结果)。
答案 0 :(得分:0)
在Windows Server和IIS中,我总是遇到从32位到64位的这种迁移问题。
首先,您需要知道Visual Studio是基于32位的。虽然您在64位服务器中使用64位Oracle客户端,但您肯定会失败。因此,完成连接的第一件事是使用32位Oracle客户端。
现在您已经安装了32位Oracle客户端,当您在服务器中部署Web应用程序时,您会发现由于此问题,IIS无法连接到Oracle:
The provider is not compatible with the version of Oracle client
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: Oracle.DataAccess.Client.OracleException: The provider is not compatible with the version of Oracle client
由于IIS运行到64位服务器,因此无法正常运行。因此,您必须通过单击“高级设置”并将“启用32位应用程序”选项设置为True来将池应用程序设置为允许32位应用程序。