我在尝试在我们的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
有任何建议,意见和建议吗?
答案 0 :(得分:1)
问题是错误消息试图说的(可能有点不清楚):
错误[IM014] [Microsoft] [ODBC驱动程序管理器]指定的DSN包含驱动程序和应用程序之间的体系结构不匹配
这意味着您尝试在64位版本的IIS中使用32位ODBC驱动程序,并且在64位应用程序中不可能使用32位驱动程序/库(不仅仅是IIS,但适用于任何Windows应用程序。)
你对VS 2015没有任何问题,因为它是32-bit application,所以驱动程序和应用程序匹配。您需要为IIS安装64位ODBC驱动程序并配置64位ODBC。