我希望能够在开发阶段查看浏览器中的文件背后的代码。为此,我将在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>
部分中的元素无法识别属性verb
和path
。
然后我尝试将<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
?
答案 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
部分中指定。如果您能够在那里指定它们,那么请执行此操作而不是解决方法。解决方法只是给你时间,直到你能够迁移你的设置。