2015-06-18 110 views
2

因爲需要編譯視圖代碼(.ascx,.aspx等),所以ASP.NET Web Forms應用程序對第​​一個請求的啓動成本很高。我們必須將這些項目部署到多個服務器,這需要啓動每個服務器,以便第一個用戶訪問網站的某些區域的響應時間不會很長。今天這是一個手動過程,我們通過運行aspnet_compiler來使其自動化。是否可以在構建服務器上預編譯ASP.NET Web Forms項目?

是否可以在構建服務器上運行aspnet_compiler並部署其輸出以便我們不必在每個要部署到的Web服務器上運行它?

獎勵題:當我們在aspnet_compilertargetdir選項,如何IIS知道到哪裏尋找編譯後的文件指定目標目錄?即存儲的信息在哪裏?

有問題的項目是一個Web應用程序項目(不是網站項目)。

回答

0

在Visual Studio的發佈對話框中有一個選項,它可能是你想要的。

Precompile Option

我沒有用它來看看它實際上有你想要的效果,但在有幾個選項配置它。你可以用這個做你想做的。

(PS:這是一個ASP.NET Web窗體項目以及在VB.NET雖然語言是無關的。)

另外,根據this MSDN article您可以添加-u-v切換到aspnet_compiler讓它預編譯更新視圖。

你也可以看看this MSDN article,因爲它描述了一個類似於你的場景。特別是編譯爲部署部,其中規定的應用程序:

通過指定TARGETDIR參數編譯的部署(到目標位置編譯)的應用程序。 targetDir可以是Web應用程序的最終位置,或編譯的應用程序可以進一步部署

本質上,您可能可以在構建服務器上運行此命令,然後根據需要分發二進制文件。

+0

謝謝,但這不能解決我的問題。我們在構建服務器上運行我們的構建。我希望構建服務器的輸出成爲預編譯視圖的可部署工件。 –

+0

@JoshKodroff你使用什麼構建服務器?它是如何設置的? –

+0

沒關係。要麼可以將預編譯的二進制文件部署到另一臺服務器,要麼必須在部署目標上運行'aspnet_compiler'。 –

相關問題