2010-05-21 100 views
2

什麼是添加到Asp.net項目的構建/編譯腳本以啓動IIS來重新啓動DLL重建網站的最佳方式,而不是對該網站的第一個請求。如何在重新編譯asp.net網站時重新啓動IIS站點

當前進程

  1. 編制項目
  2. 等待
  3. 命中APSX頁
  4. IIS啓動重裝
  5. 等待
  6. 頁面加載

理想的過程:

  1. 編制項目&重裝IIS
  2. 等待
  3. 命中APSX頁
  4. 頁面加載

第一種方式我以爲的是添加請求,正好砸在網頁之一在「後生成事件」中。只是想知道最佳實踐。這與「開始」類似,它在構建時立即打開頁面。

更新: 我想達到這個目的只是爲了提高效率。我將在以封裝編譯時,再啓動時間爲一個批次到步驟4上時間節省下面

  1. VS:CTRL + + b
  2. 等待視覺闕「構建成功「。
  3. Broswer:F5
  4. 等待IIS重新加載。 (以及命中骨節病>在unanswered questions in SO F5)
  5. 測試頁
+0

我不知道這將如何節省您的時間。您將不得不等待IIS響應您的第一個頁面請求,或者在執行第一個頁面請求時等待IDE。無論哪種方式,將要編譯的唯一代碼將是請求頁面所需的代碼。此外,您正在引入開發和生產環境(但無關緊要)之間的差異,這些環境永遠不會結束。 – 2010-05-21 16:51:17

+0

@David Lively - 這是針對IIS運行dev版本的開發環境。 – Glennular 2010-05-21 18:59:05

回答

2

一個天真的方法是寫一個shell VB腳本或PowerShell腳本,以使用XMLHttpRequest從站點請求一個頁面,包括作爲後期製作任務。

有什麼特別的原因讓你覺得有必要這樣做嗎?如果您在第一個JIT遇到性能問題,那麼您可能需要考慮將您的應用程序分解爲更小的項目/ DLL(假設這個大小是問題),或者開始考慮應用程序啓動時發生的瓶頸。

另一個問題:爲什麼IIS重置?這不會導致DLL在第一個頁面請求之前被重新編譯。與傳統的ASP不同,沒有必要重新啓動IIS以使DLL更改被允許/生效。

+0

這是一個很好的觀點。 – 2010-05-21 16:44:06

+0

結束使用Powershell和Net.WebClient。將腳本添加到生成後事件 – Glennular 2010-05-26 19:17:18

2

將「iisreset/stop」添加到預生成事件中,並在生成後事件結束時添加「iisreset/restart」。

正如David所說,您應該嘗試找出潛在的問題在這裏。如果您在第一次加載網站時遇到性能問題,這很正常。初始編譯通常需要一些時間才能發生。重置IIS只會使其花費更長時間。如果還有其他問題,請在此發佈您的理由,我們可以看看我們是否可以幫助您。

+0

我不需要IIS重新啓動所有網站,只需要重新編譯一個網站。 – Glennular 2010-05-21 16:49:51

+0

得到了你。你的問題原本措辭不是很好,所以你不需要一個iisreset。你仍然沒有解釋底層問題在這裏。 – 2010-05-21 22:45:20

1

您希望從流程中刪除的「等待」很可能是aspx標記頁面編譯時的情況。當你在默認情況下編譯VS時,它會編譯你所有的代碼,但它不會編譯你的標記aspx頁面。您可以通過在您的解決方案中添加Web Deployment Project來解決這個問題,該解決方案允許您預編譯標記頁。這樣,部署後的初始加載時間與其他加載時間應該沒有太大差別。

相關問題