簡體   English   中英

突然的IIS應用程序關閉

[英]Sudden IIS application's shutdown

我有一個ASP.net網站的多個版本,除了最近開始突然停止運行的最新版本以外,其他所有版本都工作正常。 每個版本都在不同的應用程序池中運行。 我們的調查結果如下:

  • 啟動Web應用程序幾分鍾后,將觸發Application_End事件。 但是,此后未觸發Application_Start。
  • 停止應用程序后,大多數頁面無法使用任何樣式,因為我們的樣式是使用“ BundleTable”捆綁在一起的。 所有捆綁軟件均返回404錯誤,但是依賴於Web服務的登錄過程運行良好,並將我移至主頁(由於404響應,沒有樣式)
  • 請求任何物理資源(image / js / css / svc)都可以
  • 觸發Application_End事件后,與此應用程序池相關的w3wp進程仍在運行。 使用任務管理器殺死它不會改變。 它將再次啟動而不會導致application_start被解雇
  • 停止/重新啟動/回收IIS /池不會導致Application_Start被觸發(我正在使用自定義日志記錄進行檢查)。 有時會刪除asp臨時文件,但並非每次都刪除。 現在,我已經嘗試了所有方法,但無法重新開始!
  • 項目清單

我正在使用Windows Server 2012 64x,IIS 8.5和.net V4.5。 任何提示表示贊賞

更新1:這是錯誤頁面的快照

更新2:經過幾次測試並在各處添加了更多日志之后,我可以用一種更簡單的方式來概括該問題:首先,該問題僅在並且僅在發布網站時啟用“發布期間預編譯”選項的情況下顯示,並在單個程序集中合並所有輸出DLL。 使用上述配置發布后,Application_Start事件將在第一頁請求上觸發,這是正常現象,而我在此事件中擁有的主要代碼是注冊所有CSS和JS包,並配置URL路由。 該應用程序將正常運行約。 30分鍾后,將觸發Application_End(“由於HostingEnvironment啟動了關閉”關閉原因),但不會再次觸發Application_Start! 奇怪的是,應用程序將繼續為后續請求提供服務(例如:連接到數據庫,執行日志記錄,驗證用戶身份,為WCF服務請求提供服務...),但所有在Application_Start中注冊的捆綁包和URL路由都將丟失。 另一個提示是,觸發Application_End之后,不會處理global.asax文件中處理的一般錯誤(例如:404)! 看來應用程序只是忽略或忘記再次處理此文件!

修復所有編譯警告后,終於解決了該問題。 我無法確定是哪個人解決了該問題,但無論如何想分享我的經驗。 發現的警告如下:

  1. 刪除未使用的變量(大約10個)(不會影響)
  2. 重復的名稱空間導入(大約10個)(不應影響)
  3. 我們有一個過時的WCF服務代理。 因此,我們生成了新方法(未添加新方法,並且對數據類型進行了一些更改。但是,此服務通常由超出我們測試范圍的某個外部擴展程序調用
  4. 與引用的項目之間的區域性設置(AssemplyInfo.cs-> AssemblyCulture)中的沖突有關的警告(也不確定這是否會影響,因為在不合並頁面和控件程序集的情況下進行正常發布時,我們沒有任何問題)

問候,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM