尝试使用Access远程表运行查询时出错

时间:2013-08-22 21:31:12

标签: asp.net ms-access iis odbc

我有一个包含本地和远程表的Access数据库。远程表通过ODBC连接链接到Sql Server数据库。

当我打开Access数据库时,我可以打开并查看本地和远程表的内容。因此,这证明从ASP.NET应用程序连接到远程表应该没有问题

现在,当我在Visual Studio中运行ASP.NET应用程序时,我可以在Access中访问本地和远程表,没有任何问题。

只要我将我的应用程序放入IIS并从localhost运行应用程序,我只能使用我的代码访问Access文件中的本地表,但没有远程表!我尝试时收到以下错误:“ODBC - 连接到'FMPOS_live'失败。”但请记住,我没有问题直接从Access打开远程表,但我无法从我在IIS中运行的应用程序访问它们。

是否有权限取决于访问Access文件的人员或内容,确定该进程是否可以使用远程表?

2 个答案:

答案 0 :(得分:1)

从Visual Studio运行时,您使用自己的凭据连接到SQL服务器。

从IIS运行时,您使用ApplicationPoolIdentity,网络服务或本地系统,具体取决于应用程序池的配置。您需要允许登录和读取权限到网站运行的任何帐户。

在从VS运行的情况下,它可能正常工作,因为您可能是SQL服务器上的系统管理员。

尝试在任务管理器中检查用户正在运行“w3wp.exe”。

对于ApplicationPoolIdentity,您要查找的用户名是IIS APPPOOL \ NameOfApplicationPool。

答案 1 :(得分:0)

问题是应用程序池标识。 Access不允许通过默认进程ApplicationPoolIdentity Identity访问它的远程表。我将身份更改为我的Windows用户登录,并且有效!

说明: 1.转到您网站的应用程序池 2.单击它,然后选择“高级设置” 3.在Process Model Identity下,选择Custom Account并输入您的Windows登录用户名和密码。