已实现的IHttpModule类事件未触发,SharePoint 2010问题

已实现的IHttpModule类事件未触发,SharePoint 2010问题,sharepoint,global-asax,ihttpmodule,Sharepoint,Global Asax,Ihttpmodule,我正在开发sharepoint 2010 web应用程序。我想通过从SPHttpApplication继承的using Global.asax,以经典asp.net方式处理一些应用程序事件(Begin_请求、End_请求、Application_启动) 我发现 为了区分这一点 第一个建议在全局类中重载sphttpa应用程序。好主意,但不适合我,因为我的应用程序部署到另一个主站点的子站点。如果有一种方法可以绕过这个时刻,那将是一个伟大的解决方案 第二个建议是实现IHttpModule接口并从Htt

我正在开发sharepoint 2010 web应用程序。我想通过从SPHttpApplication继承的using Global.asax,以经典asp.net方式处理一些应用程序事件(Begin_请求、End_请求、Application_启动)

我发现 为了区分这一点

第一个建议在全局类中重载sphttpa应用程序。好主意,但不适合我,因为我的应用程序部署到另一个主站点的子站点。如果有一种方法可以绕过这个时刻,那将是一个伟大的解决方案

第二个建议是实现IHttpModule接口并从HttpApplication上下文变量注册事件。它适合我,我创建了类库项目,其中一个类实现了这个接口。我还在web.config文件中添加了特殊记录:

<httpModules>
    <add name="DSModule" type="Artec.DS.HttpContext.DSModule, DSModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31a3567341f39f94"/>
</httpModules>
首先,我的web.config有错误的“type”属性。我被类名而不是程序集名弄糊涂了。因此,格式良好的标签如下所示:

<add name="DSModule" type="Artec.DS.HttpContext.DSModule, Artec.DS.HttpContext, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31a3567341f39f94" />

如果您的IIS实例是版本6,或者您正在版本7的经典模式下运行,则您列出的web.config条目是合适的

还可以尝试将其添加到web.config中,以涵盖IIS 7集成模式(您可能正在使用):



在这两个部分注册HTTP模块是完全可以的。

如果您的IIS实例是版本6,或者您正在版本7的经典模式下运行,则您列出的web.config条目是合适的

还可以尝试将其添加到web.config中,以涵盖IIS 7集成模式(您可能正在使用):



在这两个部分注册HTTP模块完全可以。

谢谢!你的建议很中肯!但我有另一个关于“服务器操作在此上下文中不可用”的问题。我也发了代码。谢谢!你的建议很中肯!但我有另一个关于“服务器操作在此上下文中不可用”的问题。我还发布了代码。你应该把这个问题分成一个单独的问题。你应该把这个问题分成一个单独的问题。
<add name="DSModule" type="Artec.DS.HttpContext.DSModule, Artec.DS.HttpContext, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31a3567341f39f94" />
context.Server.MapPath("/")
<configuration>
  <system.webServer>
    <modules>
      <add name="DSModule" type="Artec.DS.HttpContext.DSModule, DSModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31a3567341f39f94"/>
    </modules>
  </system.webServer>
</configuration>