2010-09-10 108 views
12

我正在調試緩慢加載初始頁的ASP.NET 2.0應用程序。多個Application_Start事件觸發

通過添加日誌,我發現有兩個事件之間的短暫延遲Application_Start事件觸發啓動時的兩倍。 Session_Start事件也會觸發兩次,具有相同的會話ID值。

例如

 
[Header] 
2010-09-10 14:52:36.331 INFO Web.Global.Application_Start   START 
2010-09-10 14:52:37.409 INFO Web.Global.Session_Start    Session.SessionID=xxqjvun2ce2yqsumq1hfoj45 
[Header] 
2010-09-10 14:53:10.028 INFO Web.Global.Application_Start   START 
2010-09-10 14:53:10.325 INFO Web.Global.Session_Start    Session.SessionID=xxqjvun2ce2yqsumq1hfoj45 

我在我的本地機器上,IIS 5.1下運行這個。該項目也使用ASP.NET MVC,並且正在使用的aspx頁面URL使用路由using the technique shown on Phil Haack's site進行了更改。

什麼任何建議可能導致此?

+2

應用程序是否有機會修改web.config文件? – muratgu 2011-03-01 01:58:03

+0

你有沒有Application_End之間?你有沒有在你的代碼中調用「HttpRuntime.UnloadAppDomain」? – Alex 2011-03-05 17:21:38

+1

就我而言,這是Mc Afee病毒掃描。我按照本指南排除了文件夾https://support.microsoft.com/en-us/kb/3126034 – gavin 2016-03-30 15:12:46

回答

11

我們最終意識到,這是到我們的IIS配置。

前段時間決定做出重命名使用本網站的虛擬目錄。這是通過添加一個全新的虛擬目錄配置完成的,只保留了前一個。基本上我們有兩個虛擬目錄指向同一個ASP.NET應用程序!

遷移到新的虛擬目錄從未完成,所以網站的部分仍然被引用舊的。因此,兩條Application_Start事件......

的修復是改變設置IIS中的舊虛擬目錄是重定向到URL設置爲/NewVirtualDirectory $ S $ Q

3
網址

我們發生過類似的情況,只是發現它是因爲我們完成了一個程序集重命名並且有相同代碼的兩個副本引用該程序集,versionA.dll和versionB.dll。因此,它被稱爲兩次!

0

在我的經驗(小時後研究和噸編碼)是來自

在x64文件夾未刪除SQLite.Interop.dll

我通過文件管理,而不是從託管面板中刪除FTP(FileZilla)和多個Application_Start事件解僱了:-)問題的根本原因是不可阻擋的Quartz.Net過程連接到這個DLL。