在服务器2012上将旧ASP站点连接到Access(.mdb)

时间:2014-08-28 15:06:09

标签: ms-access iis asp-classic windows-server-2012 root

我觉得这个头衔几乎说不出话来。当我尝试访问我的站点上使用Access DB的页面时,我一直收到服务器500错误。

我使用驱动程序Driver do Microsoft Access (*.mdb)创建了一个ODBC(32位)数据源。

我确定我使用了错误的驱动程序/ IIS配置。这曾经托管在一台旧服务器上,我们正试图将所有东西都移走。

有人能指出我正确的方向吗?谢谢!

修改

我能够将错误打印到我的页面。以下是以下错误:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager] Data source name not found 
and no default driver specified

当我启用32位应用程序时,出现以下错误:

HTTP Error 404.17 - Not Found
The requested content appears to be script and will 
not be served by the static file handler.

1 个答案:

答案 0 :(得分:1)

此问题与在64位服务器上运行32位应用程序有关。此外,如果您在其上安装了其他东西(例如,Outlook Web Access或简称OWA),它可以通过添加64位模块来全局加载来破坏IIS,这将有效地导致32位池的错误。

以下调试假设您需要在64位IIS服务器上运行32位ASP应用程序。

  1. 您必须将应用程序池设置为32位
  2. 如果32位池在您请求ASP页面后立即停止,则意味着很可能有64位模块无法加载。您需要通过查看Windows事件日志(eventvwr)来查看哪个dll正在创建问题。然后,逐个编辑applicationHost.config文件并将preCondition="bitness64"添加到您在eventvwr中看到的每个模块,直到您清除日志中的所有错误。
  3. 完成第2步后,您的池应该正常工作,但您的应用可能不会 - 它很可能会报告404.17,即使有ASP的ISAPI处理程序也是如此。当您打开IIS时,在左侧选择服务器,在右侧打开ISAPI和CGI限制。您将看到那里有一个ASP条目(如果没有 - 您需要将其作为服务器上的功能安装)。 ASP可能指向类似%windir%\system32\asp.dll的东西,但您需要再创建一个条目。您的appPool在64位计算机上运行为32位(在Windows 64位上运行的WOW64 = 32位Windows应用程序 - Windows64上的Windows),您需要从%windir%\SYSWOW64\asp.dll添加一个asp。此外,添加相应的处理程序(导航到处理程序,并实际重复asp的条目,但使用SYSWOW64文件夹而不是system32
  4. 这应该(最终)让它发挥作用。