作为一项古老的动态网页开发技术,ASP已经成为一项历史上的动态开发技术,现在已经很少有人会继续选择ASP开发新的产品,可是在现实环境中还是有不少ASP程序在运行,而这些程序在迁移到IIS7之后就会出现一系列问题。下面罗列的就是一些笔者自己遇到过的问题。
1、出现404错误
2、ASP没有显示详细的出错信息
默认情况下,IIS7禁止将服务器端的错误信息传递给浏览器,因此我们可能在应用程序中收到以下信息
An error occurred on the server when processing the URL. Please contact the system administrator.
If you are the system administrator please click here to find out more about this error.
要解决这个问题,在管理工具下打开IIS信息服务管理器,然后选中运行ASP的Web站点,双击打开右侧的ASP管理项,展开“调试属性”,将“将错误发送到浏览器”设置为True,或者也可以修改脚本错误信息的属性值以显示自定义的错误信息。
或者直接通过以下命令行实现
appcmd.exe set config "Default Web Site" -section:system.webServer/asp /scriptErrorMessage:"应用程序在运行时发生错误."
appcmd.exe set config "Default Web Site" -section:system.webServer/asp /scriptErrorSentToBrowser:"False"
当然,如果只是希望在本机上开发时显示ASP的执行错误,也可以启用IIS7自带的失败请求跟踪功能,有关这方面的详细信息请参阅以下链接。
http://learn.iis.net/page.aspx/565/using-failed-request-tracing-to-troubleshoot-classic-asp-errors/
3、'ASP 0175 : 80004005'错误和'ASP 0131'错误
出现这个错误的原因是IIS7没有启用父路径功能,因此只需要在ASP配置页面上,将“行为”下的“启用父路径”的属性值设置为True就可以了。
或者直接利用命令行工具实现。
appcmd.exe set config "Default Web Site" -section:system.webServer/asp /enableParentPaths:"False" /commit:apphost
4、出现Microsoft JET Database Engine error '80004005'
详细的出错信息如下所示:
Microsoft JET Database Engine error '80004005'
Unspecified error.
出现以上错误信息的网站通常使用的是Access数据库,出错的主要原因在于Access数据库的访问权限设置不正确。要解决这类问题通常需要修改两个地方的权限设置。
一个是Access所在文件夹的权限设置,允许用户对该文件夹进行写入、编辑操作;
一个是系统的临时文件夹,允许w3wp.exe程序对临时文件夹进行编辑操作。
参考链接:
http://learn.iis.net/page.aspx/559/running-classic-asp-applications-on-iis-70-and-iis-75/