6

我正在尝试映射由.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 开发机器上的 IIS 5.1 上对此进行了测试,并且在 IIS6 上进行了测试也得到了相同的错误。

我已按照说明添加和注册 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 请求而不是阻塞?

4

3 回答 3

3

其实你离成功只有一步之遥。将以下部分添加到您的本地网站(或虚拟目录)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>

于 2009-11-14T01:06:24.780 回答
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"/>`
于 2009-10-15T18:42:32.960 回答
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

对我来说就像宝石一样工作:)

于 2013-01-30T14:20:10.037 回答