使用 ADO ODBC 上传到服务器时,在 VB.NET WEB 应用程序中打开与 MS Access DB 的连接时出错
Error Opening Connection to MS Access DB in VB.NET WEB APPLICATION when uploaded to server using ADO ODBC
我有一个新的应用程序上传到 Windows 服务器,它正在尝试读取 MS Access 数据库,但我收到错误:
错误 [IM002] [Microsoft][ODBC 驱动程序管理器] 未找到数据源名称且未指定默认驱动程序
跟踪显示我在尝试打开连接时遇到错误。
这是我在 Visual Studio 2019 年的第一个 Web 应用程序。我还有其他 VS 网站应用程序也以相同的方式读取数据库。这些工作只需引用 ADODB.DLL,然后将 ADODB.DLL 文件放在已发布网站的 BIN 文件夹中。
我通过 opening/reading 我的一个网站应用程序中的同一数据库验证了数据库是否具有所有适当的权限和连接字符串。没问题。我的网站应用程序和我的网络应用程序都使用附加到项目的完全相同的 class 模块读取数据库。
所以唯一的区别似乎是一个是 WEB 应用程序(带有已编译的代码隐藏),另一个是网站(带有未编译的代码)。但同样,数据库在附加到项目的相同 class 模块中打开。
我注意到 VS 中的 PUBLISH 功能似乎忽略了我的 bin 文件夹中的 ADODB.DLL 文件(即即使它被引用也不会发布到服务器)。但是即使我手动上传DLL到服务器的BIN文件夹中,还是报错
我的服务器支持说我需要添加一个 System.DSN 来访问数据库。我试过了(可能做错了),但没有用。鉴于我在我的网站应用程序中以相同的方式读取数据库,这似乎是错误的。
因此,当在 Web 应用程序中访问时,“感觉”已发布的 Web 应用程序 DLL 无法找到 ADODB.DLL。我应该把它放在不同的位置还是以某种方式以不同的方式发布?
帮忙?
好吧,好的,所以该网站在本地工作。
您需要处理两个问题。首先,该网站很有可能 运行ning 为 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 位 - 但这通常是个问题。
我有一个新的应用程序上传到 Windows 服务器,它正在尝试读取 MS Access 数据库,但我收到错误:
错误 [IM002] [Microsoft][ODBC 驱动程序管理器] 未找到数据源名称且未指定默认驱动程序
跟踪显示我在尝试打开连接时遇到错误。
这是我在 Visual Studio 2019 年的第一个 Web 应用程序。我还有其他 VS 网站应用程序也以相同的方式读取数据库。这些工作只需引用 ADODB.DLL,然后将 ADODB.DLL 文件放在已发布网站的 BIN 文件夹中。
我通过 opening/reading 我的一个网站应用程序中的同一数据库验证了数据库是否具有所有适当的权限和连接字符串。没问题。我的网站应用程序和我的网络应用程序都使用附加到项目的完全相同的 class 模块读取数据库。
所以唯一的区别似乎是一个是 WEB 应用程序(带有已编译的代码隐藏),另一个是网站(带有未编译的代码)。但同样,数据库在附加到项目的相同 class 模块中打开。
我注意到 VS 中的 PUBLISH 功能似乎忽略了我的 bin 文件夹中的 ADODB.DLL 文件(即即使它被引用也不会发布到服务器)。但是即使我手动上传DLL到服务器的BIN文件夹中,还是报错
我的服务器支持说我需要添加一个 System.DSN 来访问数据库。我试过了(可能做错了),但没有用。鉴于我在我的网站应用程序中以相同的方式读取数据库,这似乎是错误的。
因此,当在 Web 应用程序中访问时,“感觉”已发布的 Web 应用程序 DLL 无法找到 ADODB.DLL。我应该把它放在不同的位置还是以某种方式以不同的方式发布?
帮忙?
好吧,好的,所以该网站在本地工作。
您需要处理两个问题。首先,该网站很有可能 运行ning 为 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 位 - 但这通常是个问题。