如何禁用默认处理程序HttpForbiddenHandler以查看.cs文件?

时间:2013-03-05 09:22:27

标签: asp.net iis-7.5 httphandler httpforbiddenhandler

我希望能够在开发阶段查看浏览器中的文件背后的代码。为此,我将在web.config中禁用.cs个文件的默认处理程序,HttpForbiddenHandler

由于我使用的是IIS 7,因此我首先将<remove>元素放在<system.webServer>部分中,如下所示:

<system.webServer>
    <handlers>
        <remove path="*.cs" verb="*"/>
        <add verb="*" path="*.cspx" type="HandlersAndModules.CspxHandler, HandlersAndModules" name="CspxHandler"/>
    </handlers>
</system.webServer>

我运行应用程序时遇到错误:

HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration data for the page is invalid.

这是因为<system.webServer>部分中的元素无法识别属性verbpath

然后我尝试将<remove>元素移动到<system.web>部分,如下所示:

<system.web>
    <httpHandlers>
        <remove path="*.cs" verb="*"/>
    </httpHandlers>
</system.web>

我运行应用程序时遇到错误:

HTTP Error 500.23 - Internal Server Error
An ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.

如何禁用阻止从浏览器查看HttpForbiddenHandler个文件的默认处理程序.cs

1 个答案:

答案 0 :(得分:0)

你需要两件事:

首先,要将.cs个文件作为内容提供,您需要添加以下内容:

<system.web>
    <httpHandlers>
        <remove path="*.cs" verb="*"/>
        <add verb="GET" path="*.cs" type="System.Web.StaticFileHandler" />
    </httpHandlers>
</system.web>

其次,要避免HTTP Error 500.23,请将其添加为变通方法:

<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
</system.webServer>

500.23错误表示并非所有处理程序和模块都在system.webServer部分中指定。如果您能够在那里指定它们,那么请执行此操作而不是解决方法。解决方法只是给你时间,直到你能够迁移你的设置。