2013-04-24 41 views
1

我的發佈網站部署在不同的專用服務器上。通常我們會從客戶端收回頁面級別的chaneges,這需要在客戶端和服務器端代碼中進行更改,我們首先在本地完成了更改,然後在服務器上部署該服務器端代碼的頁面,而沒有完整的發佈構建代碼,因爲我的客戶端要求稍微更改agaian並再次,當客戶滿意頁面的變化,然後我把服務器上的發佈版本。我想知道發佈和非發佈代碼部署中的主要區別是什麼?當我把aspx.cs放在服務器上時它工作正常,那麼爲什麼部署發佈版本很重要。asp.net發佈和非發佈代碼部署

+0

可能重複的[ASP.NET網站發佈與複製?](http://stackoverflow.com/questions/14102521/asp-net-website-publishing-vs-copying) – Damith 2013-04-24 10:19:50

+0

我經歷這個職位,我只是想知道是否有一段時間我沒有發佈部署頁面代碼,然後什麼可能的影響可以,雖然目前它的工作正常,它是complie時間問題或任何其他事情 – khawarPK 2013-04-24 10:31:46

回答

1

當我把aspx.cs放在服務器上時它工作正常,那麼爲什麼它是 對於部署發佈版本很重要。

這主要是效率問題。當您將ASPX和ASPX.cs(代碼隱藏)文件並排放置在服務器上時,當有人第一次請求該頁面時,該代碼隱藏文件將被編譯到其自己的程序集(.dll文件)中。實際上,您將源代碼推送到服務器,而不是編譯後的代碼。如果你對每個ASPX文件都這樣做,最終可能會有幾十到幾百個單獨的程序集(每個ASPX文件一個),一個缺點是編譯器首次將源代碼轉換爲二進制DLL時的延遲。另一個是你的服務器必須管理大量的程序集而不是一個。

當您部署發佈版本時,編譯器會將所有代碼隱藏文件合併到一個程序集中。它也會稍微改變你的ASPX文件中的@Page指令。你最終沒有將源代碼部署到服務器,只有一個二進制DLL,這是更有效的。因此,如果您只是對ASPX進行更改(如樣式,純HTML等),只要@Page指令與預編譯並已部署的代碼隱藏匹配,就可以單獨推送它們。但是,當您更改ASPX和代碼隱藏時,您應該執行發佈操作,因爲它會導致不同的合併代碼隱藏程序集,它必須部署到服務器上的bin文件夾。

有時我會做的是部署ASPX和代碼隱藏在一起來測試服務器上的東西,一旦我確定它的工作原理,回去做一個發佈部署,將代碼隱藏更改燒入合併的DLL。然後只需將它們推送到文件(dll和ASPX),刪除代碼隱藏源並完成。

+0

嗯,很好,這意味着我們可以部署代碼aspx和代碼隱藏文件因爲很容易進行快速修改,一旦進行了驗證,然後將部署發佈版本用於提高效率。 謝謝 – khawarPK 2013-04-25 06:47:44