2013-03-12 53 views
5

我想在IIS 7 集成管道模式下运行经典Asp页面。因此,我在Web.Config中添加了以下Handler映射。处理程序映射经典Asp .asp扩展页在IIS集成管线模式给出错误

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页时,服务器应用程序不可引发错误和详细的应用程序事件日志中说:

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

我哪里错了?

回答

0

难道是为了在IIS 7中运行经典的asp页面,你还需要安装吗? (它没有在IIS 7默认安装到)

看到这里如何取决于添加ASP模块阉这是你的Windows7或Windows Server 2008上:http://www.iis.net/configreference/system.webserver/asp

顺便说一句:你试图do的确是经典管道模式下的脚本映射。
参见:传统的ASP http://www.iis.net/learn/application-frameworks/building-and-running-aspnet-applications/wildcard-script-mapping-and-iis-integrated-pipeline_

10

脚本处理器是不是:

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

但:

%windir%\system32\inetsrv\asp.dll

下面是IIS7的applicationHost.config文件的正确的处理程序映射条目,安装传统的ASP时:

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

这听起来像你不是你的服务器或工作站上安装传统的ASP。

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

enter image description here

在Windows 2008R2去控制面板 - >管理工具 - >服务器管理器。点击左侧面板中的“角色”,然后向下滚动到“Web服务器(IIS)”。应该有“角色服务”这样的(我已经强调ASP是安装在服务器上我从这个截屏)的列表:

enter image description here

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

如果一切顺利,那么你应该看到在IIS管理器中的处理程序映射:

enter image description here

+0

真的很感谢你的贡献。我会检查这一点,并尽快将你的答案标记出来。 – 2013-07-11 04:54:10

+0

我在排除其他问题的同时发现了这个问题,并且发现我没有安装ASP classic,但是** ASP脚本在我的机器上正常工作。这怎么可能? – 2014-03-06 14:04:34

+0

@JoshuaFrank - 你在运行什么操作系统? – Kev 2014-03-06 14:15:19