5

我正在尝试在 IIS 7集成管道模式下运行经典的 Asp 页面。因此,我在 Web.Config 中添加了以下 Handler 映射。

add name="ASPClassic" 
path="*.asp" 
verb="GET,HEAD,POST" 
modules="IsapiModule" 
scriptProcessor="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" 
requireAccess="Script"
resourceType="Unspecified" 

但是,当请求 .asp 页面时,会引发Server Application Unavailable错误,并且详细的应用程序事件日志显示:

在以集成 .NET 模式运行的应用程序池中发出了映射到 aspnet_isapi.dll 的请求。Aspnet_isapi.dll 只能在经典 .NET 模式下运行时使用。请在处理程序映射上指定 preCondition="ISAPImode" 以使其仅在以经典 .NET 模式运行的应用程序池中运行,或将应用程序移动到以经典 .NET 模式运行的另一个应用程序池以使用此处理程序映射。

我哪里做错了?

4

2 回答 2

10

Classic ASP 的脚本处理器不是:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll

但:

%windir%\system32\inetsrv\asp.dll

applicationHost.config这是安装经典 ASP 时IIS7 文件中正确的处理程序映射条目:

<add name="ASPClassic" 
     path="*.asp" 
     verb="GET,HEAD,POST" 
     modules="IsapiModule" 
     scriptProcessor="%windir%\system32\inetsrv\asp.dll" 
     resourceType="File" />

听起来您还没有在服务器或工作站上安装 Classic ASP。

在 Windows 7 上,您需要转到控制面板 -> 程序和功能,然后单击“打开或关闭 Windows 功能”。你会得到一个看起来像这样的窗口,确保勾选“ASP”:

在此处输入图像描述

在 Windows 2008R2 上,转到控制面板 -> 管理工具 -> 服务器管理器。单击左侧面板中的“角色”,然后向下滚动到“Web 服务器 (IIS)”。应该有一个这样的“角色服务”列表(我突出显示了安装在我截取此屏幕截图的服务器上的 ASP):

在此处输入图像描述

如果未安装 ASP,则单击“添加角色服务”并勾选Web 服务器 -> 应用程序开发下的 ASP 复选框,然后单击下一步完成安装。

如果一切顺利,您应该会在 IIS 管理器中看到处理程序映射:

在此处输入图像描述

于 2013-03-18T01:08:24.583 回答
0

难道是为了在 IIS 7 中运行经典的 asp 页面,您还需要安装它吗?(在 IIS 7 上默认不安装它。)

请参阅此处如何添加 asp 模块,具体取决于您在 windows7 或 windows server 2008 上:http ://www.iis.net/configreference/system.webserver/asp

顺便说一句:您正在尝试做的确实是经典管道模式下的脚本映射。
另见:http ://www.iis.net/learn/application-frameworks/building-and-running-aspnet-applications/wildcard-script-mapping-and-iis-integrated-pipeline_

于 2013-03-12T12:55:52.563 回答