2013-04-07 108 views
1

我有一個asp.net 4.0 webforms應用程序。它是一個網站,而不是一個項目,所以它在部署之前不會被預編譯。Asp.net webforms C#文件編譯

我對單個代碼隱藏文件(c#文件)進行了更改,我需要將其上傳到網站。如果我只上傳這個文件,它會在網站上編譯嗎?或者我需要上傳其他文件來觸發編譯?例如,是否需要將前端.aspx文件一起上傳?

我問這是因爲我所做的更改適用於我的開發機器,但不適用於生產服務器。我懷疑,也許上傳的C#文件沒有在Web服務器上編譯,因此,該網站仍在運行較舊的C#文件。

任何人都有這個想法?提前致謝。

編輯:我應該指定它是一個網站項目,而不是一個web應用程序項目。

+0

如果您使用的是未預編譯的網站項目,則應該可以通過http://msdn.microsoft.com/en-us/library/dd547590.aspx#compilation對其進行更新。 您是否嘗試過回收站點? (使用判斷,因爲這將殺死任何會話,可能緩存等...) – Scott 2013-04-07 02:53:42

回答

0

讓我澄清這一點。您在代碼後面的ASP.NET頁面中進行了更改。現在,您想要將這些新更改上傳到服務器。那是對的嗎?

好的,您只需將更新後的.ASPX頁面(當然還有自動隱藏的代碼隱藏文件)上傳到服務器,並替換舊的.ASPX頁面。現在應該顯示該特定頁面的更改。如果你預先編譯或不是你的網站,它無關。

0

您不必再次編譯它。您上傳新文件後,應該更新您的網絡應用程序。最有可能的緩存問題。嘗試使用其他瀏覽器或清除當前瀏覽器上的緩存。

+0

對不起,我做了OP的編輯。這是一個網站項目,而不是一個Web應用程序項目。網站項目在第一次運行時會動態部署和編譯到Web服務器上。我的問題是,一旦代碼在稍後被上傳後如何編譯後面的代碼。它需要什麼來觸發它嗎?不知道這是否會影響您的答案。 – nanonerd 2013-04-07 03:18:12

+0

@nanonerd根據文件修改日期的變化,重新編譯將被觸發。 – 2013-04-07 04:26:31

0

當您在生產服務器上的網站項目上上載新的CS文件時,它應該動態重新編譯它們,以便能夠獲取更改。在農場和所有服務器上是否有更新的可能性?

+0

它在亞馬遜(AWS)上。 hrmmm ...謝謝你的答案... – nanonerd 2013-04-07 03:40:48

+0

有時在服務器場中發生這種情況 - 一臺服務器會更新其他服務器。 – dekdev 2013-04-07 04:26:54

+0

您是在雲中運行IIS還是Linux/mono解決方案? – Scott 2013-04-07 13:34:12

0

我有答案。我很抱歉,因爲它可能不應該被問到。哈維爾今天早上發現了正確的答案(在看到他的答案之前)。

對不起,事實證明,我的同事上傳到Web服務器上的錯誤目錄......我看不到發生了什麼......這是一個漫長的故事,但我在遠程工作,我自己可以直接訪問Web服務器。

但是,對於任何好奇的人來說,我只是上傳了代碼隱藏文件(myFile.aspx.cs),而且asp.net引擎發揮了它的魔力,並且工作。所以不需要上傳其他文件(如前端myFile.aspx和web.config)來強制編譯。它會自動發生。

謝謝。