问题描述
我正在将网站项目转换为 Web 应用程序项目。我已经有了所有要编译甚至发布的东西(漫长的过程)。但是,现在我已经在 IIS 中“加载”了项目,没有调用 httpModule。
web.config 的模块部分如下所示:
<modules runAllManagedModulesForAllRequests="true">
<add name="ContentWebSite" type="ContentWebSite.ContentWebSite"/>
</modules>
httpModule 的类是这样开始的:
namespace ContentWebSite
{
public class ContentWebSite : IHttpModule
{
private HttpApplication _Application;
我错过了什么?当我在本地 IIS 的上下文中运行时,永远不会在构造函数或 ContentWebSite 类的 init 方法中设置断点。当我在 IIS Express 中运行时,断点被命中!如何让 IIS 调用 httpModule?
TIA,
解决方法
您可以检查应用程序池模式是否导致了您的问题。
应用程序池模式:经典与集成。
<system.webServer><!--for integrated mode-->
<modules>
<add name="modulename" type="ContentWebSite.ContentWebSite" />
</modules>
</system.webServer>
<system.web><!--for classic mode-->
<httpModules>
<add name="modulename" type="ContentWebSite.ContentWebSite" />
</httpModules>
</system.web>
,
好的,所以我通过将模块添加名称行更改为:
<add name="modulename" type="ContentWEbSite.ContentWebsite,appName" />
其中 appName 是为项目生成的 DLL 的物理名称!