首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >VS2010开发web服务器不使用集成模式的HTTP处理程序/模块

VS2010开发web服务器不使用集成模式的HTTP处理程序/模块
EN

Stack Overflow用户
提问于 2010-04-25 20:25:49
回答 2查看 16.7K关注 0票数 18

我正在使用Visual Studio2010开发一个针对.NET Framework4.0的ASP.NET MVC2网站。

我的web.config包含以下代码:

代码语言:javascript
复制
<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服务器正在以经典模式运行。

我该如何解决这个问题?

EN

回答 2

Stack Overflow用户

发布于 2010-08-25 21:30:46

我不确定我的回答是否为时已晚,但虽然众所周知,Cassini服务器不支持集成管道模式,但您仍然可以使用经典管道进行本地测试,方法是将其添加到web.config中的system.web的httpModules部分:

代码语言:javascript
复制
  <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部分。

票数 4
EN

Stack Overflow用户

发布于 2013-07-19 19:56:36

这是今天在visual studio 2012中运行时得到的。发现原因是visual studio启动了2010年的旧web服务器,如上所述,它不能在那里工作。右键单击属性,选择"Web“选项卡,然后选择IIS Express选项,即可更改为IIS Express。然后,启动调试模式将在IIS Express中启动,这将明确支持诸如Request.Headers.Add或任何导致异常的操作。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2708187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档