【问题标题】:Multiple Application_Start events firing多个 Application_Start 事件触发
【发布时间】:2010-09-10 13:59:21
【问题描述】:

我正在调试一个初始页面加载缓慢的 ASP.NET 2.0 应用程序。

通过添加日志记录,我发现Application_Start 事件在启动时会触发两次,两个事件之间有短暂的延迟。 Session_Start 事件也会触发两次,使用相同的 Session ID 值。

例如

[标题] 2010-09-10 14:52:36.331 信息 Web.Global.Application_Start 开始 2010-09-10 14:52:37.409 信息 Web.Global.Session_Start Session.SessionID=xxqjvun2ce2yqsumq1hfoj45 [标题] 2010-09-10 14:53:10.028 信息 Web.Global.Application_Start 开始 2010-09-10 14:53:10.325 信息 Web.Global.Session_Start Session.SessionID=xxqjvun2ce2yqsumq1hfoj45

我在本地机器上运行它,在 IIS 5.1 下。该项目还使用 ASP.NET MVC,并且正在使用的 aspx 页面 URL 使用路由更改,using the technique shown on Phil Haack's site

关于可能导致此问题的任何建议?

【问题讨论】:

  • 应用程序是否会修改 web.config 文件?
  • 您是否在两者之间触发了 Application_End?您的代码中是否调用了“HttpRuntime.UnloadAppDomain”?
  • 在我的情况下是 Mc Afee 病毒扫描。我按照本指南排除文件夹support.microsoft.com/en-us/kb/3126034

标签: asp.net application-start


【解决方案1】:

我们最终意识到这取决于我们的 IIS 配置。

前段时间决定重命名本网站使用的虚拟目录。这是通过添加一个全新的虚拟目录配置来完成的,而将之前的配置保留在原地。本质上,我们有两个虚拟目录指向同一个 ASP.NET 应用程序!

到新虚拟目录的迁移从未完成,因此网站的某些部分仍然引用旧目录。因此有两个Application_Start 事件...

解决方法是将 IIS 中的旧虚拟目录设置更改为 重定向到 URL,并将 URL 设置为 /NewVirtualDirectory$S$Q

【讨论】:

    【解决方案2】:

    我们遇到了类似的情况,只是发现这是因为我们对程序集进行了重命名,并且有两个引用该程序集的相同代码副本,versionA.dll 和 versionB.dll。因此它被调用了两次!

    【讨论】:

      【解决方案3】:

      花了4天的时间,我终于找到了问题所在! 如果您更改 Bin 目录中的任何文件,IIS 会重置您的应用程序和应用程序池。 对我来说,这是因为我的程序曾经在 Bin 目录中写入的 log.txt 文件。 我更改了日志文件路径,问题已经消失了!

      【讨论】:

      • 你拯救了我的一天
      【解决方案4】:

      根据我经验丰富的(下班后研究和大量编码)来自

      取消删除 x64 文件夹中的 SQLite.Interop.dll

      我通过文件管理从托管面板而不是 FTP (FileZilla) 中删除了多个 Application_Start 事件触发消失 :-) 问题的根本原因是连接到此 dll 的不可阻挡的 Quartz.Net 进程。

      【讨论】:

      • 多年后,我遇到了同样的问题并在谷歌搜索并再次找到了这个解决方案,这是我的;-)我希望这也有帮助:-)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-08
      • 1970-01-01
      • 1970-01-01
      • 2010-10-07
      • 1970-01-01
      • 2012-05-19
      相关资源
      最近更新 更多