我正在使用Visual Studio2010开发一个针对.NET Framework4.0的ASP.NET MVC2网站。
我的web.config包含以下代码:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="XhtmlModule" type="DomenicDenicola.Website.XhtmlModule" />
</modules>
<handlers>
<add name="DotLess" type="dotless.Core.LessCssHttpHandler,dotless.Core" path="*.less" verb="*" />
</handlers>
</system.webServer>
当我使用Build > Publish
将网站放在我本地的IIS7实例上时,它工作得很好。
但是,当我使用Debug > Start Debugging
时,HTTP处理程序和模块都不会对任何请求执行。
奇怪的是,当我将处理程序和模块<add />
标记放回<httpHandlers />
和<httpModules />
下的<system.web />
中时,它们可以正常工作。这似乎意味着开发web服务器正在以经典模式运行。
我该如何解决这个问题?
发布于 2010-08-25 21:30:46
我不确定我的回答是否为时已晚,但虽然众所周知,Cassini服务器不支持集成管道模式,但您仍然可以使用经典管道进行本地测试,方法是将其添加到web.config中的system.web的httpModules部分:
<system.web>
<compilation debug="true" targetFramework="4.0"/>
.
.
.
<!-- HTTP Modules using Classic Pipeline -->
<httpModules>
<add name="YourHttpModule" type="ACME.YourHttpModule"/>
</httpModules>
</system.web>
<system.webServer>
<!-- HTTP Modules using Integrated Pipeline -->
<modules runAllManagedModulesForAllRequests="true">
<add name="YourHttpModule" type="ACME.YourHttpModule"/>
</modules>
</system.webServer>
您可能希望从生产web.config中删除httpModules部分。
发布于 2013-07-19 19:56:36
这是今天在visual studio 2012中运行时得到的。发现原因是visual studio启动了2010年的旧web服务器,如上所述,它不能在那里工作。右键单击属性,选择"Web“选项卡,然后选择IIS Express选项,即可更改为IIS Express。然后,启动调试模式将在IIS Express中启动,这将明确支持诸如Request.Headers.Add
或任何导致异常的操作。
https://stackoverflow.com/questions/2708187
复制相似问题