我正在使用 Visual Studio 2010 开发面向 .NET Framework 4.0 的 ASP.NET MVC 2 网站。
我的 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 />
标签返回 <system.web />
在 <httpHandlers />
下和 <httpModules />
, 他们工作。这似乎意味着开发 Web 服务器正在以经典模式运行。我该如何解决?
最佳答案
你没有。 WebDev.WebServer.exe 不支持也不支持集成管道。
因此,如果您的代码无法编写为在两种环境中执行,您将需要使用本地 IIS 进行开发。
基本上,system.web
是配置 webdev 服务器和 IIS5-6 处理程序和模块的地方。 system.webServer
如您所知,适用于 IIS7 处理程序和模块。
引用 :
中的每个请求WebDev.WebHost40 (和以前的版本)由 HttpRuntime.ProcessRequest
处理
(which does not support integrated pipeline mode)。这是 的所有三个版本中使用的方法。 WebHost.WebServer.dll ( WebDev.WebServer.exe 的核心)
和 some dude 的话通过管理 this project 对 Cassini/WebDev 的内部工作非常熟悉. ;-)
关于visual-studio - VS2010 开发 Web 服务器不使用集成模式 HTTP 处理程序/模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2708187/