我正在使用 HttpModule 在我的网站上做一些 URL 缩短。我正在使用 Visual Studio 2008 和 IIS 7,以及 .Net 3.5。
当模块在 web.config 的 system.webServer 元素中指定,并且站点在 IIS 中运行时,它工作正常。配置如下所示:
<system.webServer>
<modules>
<add name="MinimizeModule" type="ClipperHouse.UrlMinimizer.MinimizeModule" />
</modules>...
我的模块附加到 BeginRequest 事件,一切正常。但是,我无法使用内置的 VS Web 服务器 (Cassini) 运行它。我尝试将模块配置移动到 web.config 中的 system.web 元素,但没有成功。我在上面设置了一个断点,没有任何反应。
关于为什么这会成为一个问题有什么想法吗?
(我还在 global.asax 中尝试了 Application_BeginRequest 事件。仍然没有运气,尽管我更愿意将所有内容都保留在 web.config 中。)
最佳答案
Cassini,IIS提供的开发web服务器使用IIS6模块语法,所以你必须像这样复制模块添加
<system.web>
<httpModules>
<add name="MinimizeModule" type="ClipperHouse.UrlMinimizer.MinimizeModule" />
</httpModules>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<remove name="MinimizeModule" />
<add name="MinimizeModule" type="ClipperHouse.UrlMinimizer.MinimizeModule"
preCondition="managedHandler" />
</modules>
</system.webServer>
请注意,我还在您的 IIS7 设置中添加了前提条件
关于c# - HttpModule 未与 Visual Studio 一起运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/963545/