2013-01-04 40 views
1

生產(活)asp.net網站是否也是推送更新的工作副本是一個好習慣嗎?作爲SVN工作副本的ASP.NET製作網站

+0

爲什麼近距離投票? (我找不到重複的東西 - 如果我錯了,我會刪除) – ccook

+2

我已經爲網站項目完成了這項工作(與Web應用程序項目相關),因爲它們不能很好地與Web部署配合使用。 – jrummell

+1

我也有,它非常方便,但我擔心它有副作用。例如,現場網站中存在的代碼和svn密碼的副本。 – ccook

回答

4

通常,這被認爲是不好的做法,主要是因爲源代碼控制庫包含而生產應用程序包含結果。由於多種原因,兩者保持分開:

  • 安全性。如果您的源位於生產服務器上,則有被查看的風險。也許這是一個問題,也許不是。安全的做法是隻在生產服務器上沒有源代碼。
  • 表現。構建源的結果可以通過源本身通常不會的方式對性能進行優化。例如,在.NET應用程序中,生產部署不包含調試符號。這可能不是您的特定應用程序中的問題,但需要考慮。
  • 多個結果。您的源代碼是一個實際的應用程序,還是用於構建應用程序的信息?可以構建多個版本?例如,在.NET Web應用程序中,您可能會使用Web.config轉換。這些在部署時用於調整構建源代碼的結果。如果源自身被用作實時應用程序,則這些部署時修改不可用。

其他人可能能夠表達得比我更好,但總的來說這被認爲是不好的做法,是的。您的特定申請可能是特殊原因的例外情況,也可能沒有受到任何特定原因的有意影響,因此我強調「一般」部分。

1

根據您的項目佈局,可能存在一些安全問題。例如,如果您的.txt文件中包含一些敏感信息,請記住它可以在您的網站中訪問。

任何在App_Code或任何.cs,.vb,.config等文件都不會由ASP.NET提供,因此您可以放入您不希望人們看到的東西。

另外,對於初始加載性能,您應該通過VS Publish命令或Web部署項目插件(假設您正在使用網站項目)預編譯您的站點。您可以爲預編譯的可部署代碼創建一個svn分支,並在您的服務器上使用該分支。