部署到 IIS 时未调用 Web 应用程序项目中的 httpModule

问题描述

我正在将网站项目转换为 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,

解决方法

您可以检查应用程序池模式是否导致了您的问题。

应用程序池模式:经典与集成。

enter image description here

<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 的物理名称!

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...