我正在尝试映射要由.net处理的经典asp页面的请求,以便它通过自定义的httpmodule运行。
在IIS中我已经将asp请求重新映射到aspnet_isapi.dll - 我确信我已经做到了这一点
现在在我的测试应用中,我收到此错误:
Server Error in '/TestASPRedirect' Application.
--------------------------------------------------------------------------------
This type of page is not served.
Description: The type of page you have requested is not served because it has been explicitly forbidden. The extension '.asp' may be incorrect. Please review the URL below and make sure that it is spelled correctly.
Requested URL: /testaspredirect/test.asp
在线搜索此错误显示有大量人员遇到cassini问题,但这并不是真正相关的,我在XP dev机器上的IIS 5.1上进行测试,并且在IIS6上测试也会出现同样的错误。< / p>
我已按照添加和注册httphandler的说明(请参阅http://support.microsoft.com/default.aspx?scid=kb;en-us;Q308001),但我不知道在ProcessRequest例程中放入什么以确保传递请求。什么是默认的.net httphandler,我可以在web.config中映射到这个吗:所以类似:
<httpHandlers>
<add verb="*" path="*.asp" type="standard.nethttphandler"/>
</httpHandlers>
如何告诉asp.net它需要传递ASP请求而不是阻止?
答案 0 :(得分:2)
看起来.asp
扩展名已映射到HttpForbiddenHandler
。
如果您使用的是ASP.NET 1.1,请打开以下文件:
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG\machine.config
如果您使用的是ASP.NET 2.0,请打开此文件:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.config
搜索“path="*.asp"
”,然后注释掉该行。它会像:
<!-- machine.config/ASP.NET 1.1-->
<add path="*.asp" verb="*"
type="System.Web.HttpForbiddenHandler"/>`
<!-- web.config/ASP.NET 2.0-->
<add path="*.asp" verb="*"
type="System.Web.HttpForbiddenHandler" validate="true"/>`
答案 1 :(得分:2)
实际上,你距离成功只有一步之遥。将以下部分添加到本地网站(或虚拟目录)web.config文件中:
<configuration>
...
<system.web>
<compilation>
<buildProviders>
<add extension=".asp" type="System.Web.Compilation.PageBuildProvider"/>
</buildProviders>
</compilation>
<httpHandlers>
<add path="*.asp" verb="*" type="System.Web.UI.PageHandlerFactory" validate="true"/>
</httpHandlers>
</system.web>
答案 2 :(得分:0)
找到以下文件:
C:\WINDOWS\MICROSOFT.NET\FRAMEWORK\<FramworkVersion>\Config\web.config
其中<FramworkVersion>
是文件夹名称:
在XML编辑器中打开它..(甚至记事本也没问题)
并添加以下行:
<add path="*.asp" verb="*" type="System.Web.UI.PageHandlerFactory" validate="True"/>
在XPath下面:
configuration/system.web/httpHandlers
替换现有的!
添加以下行:
<add extension=".asp" type="System.Web.Compilation.PageBuildProvider"/>
在XPath下面:
/configuration/system.web/compilation/buildProviders
对我来说像宝石一样工作:)