拥有一个生产(实时)asp.net 网站,它也是一个推送更新的工作副本,这是一种好的做法吗?
问问题
89 次
3 回答
4
一般来说,这被认为是不好的做法,主要是因为源代码控制存储库包含源代码,而生产应用程序包含结果。两者分开的原因有很多:
- 安全。如果您的源在您的生产服务器上,它就有被查看的风险。也许这是一个问题,也许不是。安全的方法是在生产服务器上没有源。
- 表现。构建源的结果可以以源本身通常不具备的方式优化性能。例如,在 .NET 应用程序中,生产部署不包含调试符号。这在您的特定应用程序中可能不是问题,但需要考虑。
- 多个结果。您的源是实际应用程序,还是用于构建应用程序的信息?可以构建多个版本吗?例如,在 .NET Web 应用程序中,您可能有 Web.config 转换。这些在部署时用于调整构建源的结果。如果源本身被用作实时应用程序,则这些部署时修改不可用。
其他人可能比我能更好地表达这一点,但总的来说,这被认为是不好的做法,是的。您的特定应用程序可能是任何特定原因的例外,或者可能不会受到任何特定原因的有意义的影响,因此我强调“一般”部分。
于 2013-01-04T15:13:10.623 回答
1
根据项目的布局,可能存在一些安全问题。例如,如果您有一个包含一些敏感信息的 .txt 文件,请记住它可以在您的站点中访问。
ASP.NET 不会提供 App_Code 或任何 .cs、.vb、.config 等文件中的任何内容,因此您可以将不希望人们看到的内容放在那里。
此外,对于初始加载性能,您应该通过 VS Publish 命令或 Web 部署项目插件预编译您的网站(假设您正在使用网站项目)。您可以为预编译、可部署的代码创建一个 svn 分支,并在您的服务器上使用该分支。
于 2013-01-04T15:13:02.823 回答
0
您可以使用http://springloops.io或http://deployhq.com等服务仅将某些文件夹推送到服务器。这为您将代码推送到部署提供了很大的灵活性。
于 2013-08-22T16:14:00.400 回答