如何使用 MS Access 数据库在 ISS 中设置现有的 asp 站点?
Posted
技术标签:
【中文标题】如何使用 MS Access 数据库在 ISS 中设置现有的 asp 站点?【英文标题】:How to setup existing asp site in ISS with MS Access database? 【发布时间】:2018-11-07 12:28:40 【问题描述】:我需要将旧的 .asp 站点迁移到我们的新服务器(Server Essentials 2016)上。 该站点运行 Access 数据库,目前托管在 Windows 7 pro 机器上的 IIS 中。 我在新服务器上启用了 asp.net 4.6,并将整个网站从旧服务器(Windows 7 Pro)复制到新服务器上的等效目录中,(C:\inetpub\wwwroot - 我知道存储不是最佳做法该站点在这里,但我正在消除变量以使该站点正常工作-一旦工作正常,我将移动它...)。 普通的 html 页面现在可以正常工作,因此可以清楚地访问站点文件夹,但是任何需要访问数据库的页面都会出现错误 500 - 无论是来自服务器自己的浏览器还是来自网络上的其他 PC……站点及其数据库是两者都在同一个 wwwroot 文件夹中,并且与 Windows 7 机器上的文件路径相同,因此唯一不同的是计算机名称和操作系统。 我在新服务器上运行了多个其他 (php) 站点,但无法让这个 asp 站点工作!
我做错了什么?没有用 php 重写整个网站,我被困住了!
提前致谢!
【问题讨论】:
从提供实际错误开始。谷歌调试asp。如果您能告诉我们的不仅仅是 错误 500,请回来,这是网络上最常见的错误之一。 我知道错误 500 是如此模糊,几乎毫无意义,但同一站点在旧服务器上运行的事实表明问题出在服务器设置而不是代码上 - 我错过了什么与 IIS 本身?一般的 html 页面,即使使用 .asp 扩展名也可以正常工作,只有需要访问数据库的页面才会出错... 如果您在错误中向我们提供更多详细信息,我们可以告诉您。现在,它可以是任何东西,从没有正确设置 Access 到缺少依赖项到依赖于语言环境的代码和语言环境的差异到各种配置问题。如前所述,当您能告诉我们的不仅仅是 error 500 时,请从基本调试开始。现在,我们只能猜测,这里不是胡乱猜测或调试教程的地方。 好的,所以我为错误 500 代码启用了详细的错误响应,并得到“Active Server Pages error 'ASP 0131' Disallowed Parent Path” 所以我启用了父路径(同样,最佳实践与否,我只是想让这个东西工作......)现在得到“ADODB.Command error '800a0e7a' Provider cannot be found。它可能没有正确安装。” 我已经搜索了这个错误代码,答案似乎是在应用程序池中启用 32 位应用程序,但如果我这样做,我会收到所有页面的错误 500.19,而不仅仅是那些需要数据库的页面访问? 【参考方案1】:已修复,我需要从“Provider=Microsoft.Jet.OLEDB.4.0;”更改连接文件到“提供者=Microsoft.ACE.OLEDB.12.0;”没有任何错误消息暗示这一点,但我们最终到达了那里!
所以在这种情况下为其他人回顾一下:
第 1 步:在 IIS 中突出显示左侧窗格中的站点并双击“ASP”图标,然后将“启用父路径”更改为“真”
第 2 步:下载并安装 Microsoft Access 数据库引擎 (https://www.microsoft.com/en-us/download/details.aspx?id=13255)
第 3 步:将连接文件中的代码更改为“Provider=Microsoft.ACE.OLEDB.12.0;”
感谢您的指导!
【讨论】:
以上是关于如何使用 MS Access 数据库在 ISS 中设置现有的 asp 站点?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Compact Framework 中使用 MS Access 数据库?
如何使用 SQL 在 MS Access 数据库中“显示表”?