使用ADO ODBC上传到服务器时,在VB.NET WEB应用程序中打开与MS Access DB的连接时出错



我有一个新的应用程序上传到Windows服务器,该应用程序正试图读取MS Access DB,但我得到了错误:

错误[IM002][Microsoft][ODBC驱动程序管理器]找不到数据源名称并且没有指定默认驱动程序

跟踪显示,我在尝试打开连接时出现错误。

这是我在Visual Studio 2019中的第一个WEB应用程序。我有其他VS网站应用程序也以同样的方式读取数据库。这些工作只需引用ADODB.DLL,然后将ADODB.DLL文件放在已发布网站的BIN文件夹中即可。

我通过在我的一个网站应用程序中打开/读取同一个数据库,验证了数据库在所有适当的权限和连接字符串下都是好的。没问题。我的WEBSITE应用程序和我的WEB应用程序都读取了数据库,并将相同的类模块附加到项目中。

因此,唯一的区别似乎是,一个是WEB应用程序(后面有编译的代码(,另一个是网站(后面有未编译的代码。但同样,数据库是在附加到项目的相同类模块中打开的。

我注意到VS中的PUBLISH功能似乎忽略了bin文件夹中的ADODB.DLL文件(即即使它被引用,也不会将其发布到服务器(。但是,即使我手动将DLL上传到服务器的BIN文件夹,我也会收到错误。

我的服务器支持说我需要添加一个System.DSN来访问数据库。我试过了(可能做得不对(,但没用。考虑到我在网站应用程序中以同样的方式读取数据库,这似乎是错误的。

所以它"感觉就像";在web应用程序中访问ADODB.DLL时,已发布的web应用程序DLL找不到它。我应该把它放在不同的地方还是以不同的方式出版?

帮助?

好吧,好吧,所以网站在本地工作。

你必须处理两个问题。首先,有一个很好的可能性,网站是运行x64位。因此,该网站需要安装x64位版本的Access数据库引擎(ACE(。

换句话说,目标网站需要安装Access支持,而现在大多数网站默认运行x64位

我相信你需要更多,而不仅仅是安装ADO.dll。如果您使用mdb文件,那么安装JET x32的可能性相当高。但是,如果web服务器是x64位,则需要在该服务器上安装x64位ACE。这个:

https://www.microsoft.com/en-us/download/details.aspx?id=54920

请确保从上面选择了正确的x64位,或者您可以强制网站以x32位运行,但这通常是一个问题。

最新更新