【问题标题】:Profile_OnMigrateAnonymous event firing multiple timesProfile_OnMigrateAnonymous 事件多次触发
【发布时间】:2009-08-25 16:49:52
【问题描述】:

我们有一个 HTTPModule,其唯一目的是进行“url 重写”。根据 HTTPModule 的定义,所有浏览器请求(html、css、javascript、图像等)都会通过此类的事件处理程序。

在登录过程中,我们在 Global.asax 的 Profile_OnMigrateAnonymous 事件处理程序中捕捉到用户从“匿名”切换到“登录”用户的时刻。我们发现的一个问题是,当用户登录时,Profile_OnMigrateAnonymous 事件似乎触发了请求中的每个资源以向用户生成页面 - 即 html、css、javascript、图像等。它我的理解是这个事件只会触发一次。为什么会多次触发?是我们注册的“url 重写”HTTPModule 的结果吗?有没有办法我们可以将应用程序配置为只触发一次该事件?

【问题讨论】:

    标签: asp.net profile global-asax anonymous


    【解决方案1】:

    对于正常的资源请求(css/js/img 等),IIS 直接处理请求。它只传递给 asp_net worker 对特定文件名(例如 .aspx 和 .asmx)的请求。

    您的 HTTPModule 基本上是在强制 IIS 将所有请求转发到工作进程,因此每个请求都会触发 Profile_OnMigrateAnonymous。

    我认为您不能绕过对 Profile_OnMigrateAnonymous 的调用,但是您可以实现一些代码来检查 .aspx/.ascx 等文件名,然后才执行指定的实际操作。

    【讨论】:

      猜你喜欢
      • 2016-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多