Pya*_*ung 5 asp.net asp-classic iis-7.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"
Run Code Online (Sandbox Code Playgroud)
但是,当请求.asp页面时,会引发Server Application Unavailable错误,并且详细的应用程序事件日志表示:
映射到aspnet_isapi.dll的请求是在以集成.NET模式运行的应用程序池中进行的.Aspnet_isapi.dll只能在Classic .NET模式下运行时使用.请在处理程序映射上指定preCondition ="ISAPImode",使其仅在以Classic .NET模式运行的应用程序池中运行,或者将应用程序移动到以Classic .NET模式运行的另一个应用程序池,以便使用此处理程序映射.
我哪里做错了?
Kev*_*Kev 10
Classic ASP的脚本处理器不是:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll
但:
%windir%\system32\inetsrv\asp.dll
这applicationHost.config
是安装Classic ASP时IIS7 文件中正确的处理程序映射条目:
<add name="ASPClassic"
path="*.asp"
verb="GET,HEAD,POST"
modules="IsapiModule"
scriptProcessor="%windir%\system32\inetsrv\asp.dll"
resourceType="File" />
Run Code Online (Sandbox Code Playgroud)
听起来您没有在服务器或工作站上安装Classic ASP.
在Windows 7上,您需要转到" 控制面板" - >"程序和功能",然后单击"打开或关闭Windows功能".你会得到一个看起来像这样的窗口,确保勾选"ASP":
在Windows 2008R2上,转到" 控制面板" - >"管理工具" - >"服务器管理器".单击左侧面板中的"角色",然后向下滚动到"Web服务器(IIS)".应该有一个像这样的"角色服务"列表(我已经突出显示了安装在我拍摄此屏幕截图的服务器上的ASP):
如果未安装ASP,则单击"添加角色服务"并勾选Web服务器 - >应用程序开发下的ASP复选框,然后单击下一步以完成安装.
如果一切顺利,那么您应该在IIS管理器中看到处理程序映射:
难道为了在 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_