Asp.net

Visual Studio 可以在新的調試會話中重新啟動 IIS Express 嗎?

  • January 18, 2016

我有一個 ASP.Net 應用程序,它在 Global.asax 的 Application_Start 期間執行一些數據庫初始化。我正在使用 IIS Express 來調試應用程序。

我發現如果我停止調試,清除數據庫,然後重新啟動,Application_Start 程式碼不會被呼叫並且我的數據庫沒有正確初始化,所以我的應用程序失敗了。這是因為 IIS Express 實例在調試停止後仍在執行。Visual Studio 似乎沒有重新啟動它,而是附加到現有程序。

有沒有辦法改變這種行為,以便啟動新的調試會話總是重新啟動 IIS Express 中的應用程序程序(或重置正常 IIS 中的應用程序池)?

或者,有沒有辦法在調試會話結束時強制 IIS Express 關閉?

我確實發現,如果我從項目設置中的 Web 對話框中選中“啟用編輯並繼續”,它會在調試結束時產生停止 IIS Express 的副作用。但我不確定我是否想僅出於停止 IIS Express 的目的而引入 Edit and Continue 的副作用。肯定有更好的方法嗎?

不確定是否重要,但這是VS2012。

不幸的是,這不能通過配置來實現。我可能會向您提出另一個技巧,但由您決定它是否比您的更好:)

您可以創建一個建構後事件來更改 web.config 文件的時間戳。我使用了來自<http://www.stevemiller.net/apps/>的 touch.exe 工具。您還需要將“執行建構後事件”設置為始終。因此,您的“建構事件”配置可能如下所示:

在此處輸入圖像描述

在您啟動調試器的任何時候設置此選項後,web.config 時間戳會在第一次請求時更新導致應用程序重新啟動(應用程序應用程序域重新載入) - 但此時您已經附加到此程序,因此您的Application_事件斷點應該可以工作。

引用自:https://stackoverflow.com/questions/12590963