在已发布的Web应用程序

时间:2017-09-13 19:53:13

标签: asp.net odbc 32-bit openedge progress-db

我在尝试在我们的IIS服务器上发布并正确运行我的Web应用程序时遇到问题。

当我在Visual Studio 2015中使用相同的ODBC驱动程序设置进行测试时,一切正常。只有在我尝试发布Web应用程序并在浏览器中从IIS Web服务器访问它时才会出现问题。

我正在使用Visual Studio 2015 v14.0.25431.01 Update 3

IIS服务器是64位Windows 2016服务器

ODBC驱动程序是Progress OpenEdge 11.6驱动程序 - 32位

使用c:\​​ windows \ sysWOW64 \ odbcad32

中的32位ODBC管理器设置ODBC连接

我遇到过许多论坛,说明要确保正确设置ODBC驱动程序,并使用正确的ODBC管理器。

我还发现了一些帖子,这些帖子引用了编译Web应用程序并在Configuration Manager中指定使用x86而不是Any CPU。当我进入配置管理器时,x86不是一个选项。

我对如何解决此错误感到很遗憾,以便我可以从IIS服务器访问新的Web应用程序。

我得到的错误是......

  应用程序中的服务器错误。

     

错误[IM014] [Microsoft] [ODBC驱动程序管理器]指定的DSN包含驱动程序和应用程序之间的体系结构不匹配

     

描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

     

异常详细信息:System.Data.Odbc.OdbcException:ERROR [IM014] [Microsoft] [ODBC驱动程序管理器]指定的DSN包含驱动程序和应用程序之间的体系结构不匹配

     

来源错误:   在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。   堆栈跟踪:

     

[OdbcException(0x80131937):ERROR [IM014] [Microsoft] [ODBC驱动程序管理器]指定的DSN包含驱动程序和应用程序之间的体系结构不匹配]   System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle,RetCode retcode)+1358681   System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions选项,DbConnectionPoolKey poolKey,Object poolGroupProviderInfo,DbConnectionPool池,DbConnection owningObject)+78

有任何建议,意见和建议吗?

1 个答案:

答案 0 :(得分:1)

问题是错误消息试图说的(可能有点不清楚):

  

错误[IM014] [Microsoft] [ODBC驱动程序管理器]指定的DSN包含驱动程序和应用程序之间的体系结构不匹配

这意味着您尝试在64位版本的IIS中使用32位ODBC驱动程序,并且在64位应用程序中不可能使用32位驱动程序/库(不仅仅是IIS,但适用于任何Windows应用程序。)

你对VS 2015没有任何问题,因为它是32-bit application,所以驱动程序和应用程序匹配。您需要为IIS安装64位ODBC驱动程序并配置64位ODBC。