部署asp.net网站的最佳方法

时间:2011-06-03 15:37:24

标签: asp.net deployment web

只是想知道部署ASP.Net网站的最佳选择是什么。目前我只是将代码放在服务器上的一个文件夹中,并在IIS上创建一个虚拟目录,引用该文件夹。然后我在服务器上的VS2008中打开网站并构建它。虽然它对我来说工作正常,但我不确定我是否遵循最佳部署方法。

感谢。

5 个答案:

答案 0 :(得分:2)

互联网上对此有很多意见,这都是意见。在某种程度上,这取决于你和你的团队(如果你有的话),如果你的方法适合你,那么我没有看到任何改变的巨大理由,但我建议你至少有一个临时站点,你可以在部署到生产环境之前部署用户测试代码。

也就是说,在服务器上运行VS并不是很好(并且意味着你需要另一个VS许可证,这可能是一种浪费),而且无论如何VS都包含一个发布选项,这是相当多余的。我对较小的网站使用发布,它工作正常。

答案 1 :(得分:0)

从VS内部发布是一个非常强大的工具,因为它允许您进行web.config替换。查看Hanselman演讲Web Deployment Made Awesome: If You're Using XCopy, You're Doing It Wrong

答案 2 :(得分:0)

在我工作的项目中,我们最初构建在开发机器上,压缩并复制'bin'目录的内容。 (解压缩,在IIS等中创建一个站点......)

后来,当我们有时间的时候,我们采用了这种方法:

Creating windows installers in VS2008

这非常有效,因为(字面上)任何人都能够进行部署。真正的美妙之处在于,您可以解释这只是一种包装复制'bin'目录的过程的奇特方式......

我希望能有所思考。

戴夫

答案 3 :(得分:0)

您有几个选项,比在服务器上运行Studio更可取。

根据您的团队规模,您可以:

  • 从VS
  • 发布
  • 持续集成,请查看Cruise Control了解有关
  • 的信息
  • CI和文件同步的组合(即CI到测试服务器然后xcopy到生产)

我主张CI,因为您倾向于以这种方式更快地发现问题,但它假设您正在使用良好的版本跟踪和测试实践。复制文件可能会产生意外后果,例如遗漏文件,过期文件开始保留等等。

答案 4 :(得分:0)

当您以这种方式部署时,任何能够访问Web服务器(如果托管可能无法控制)的人都可以查看甚至可能更改您的.aspx页面。

您可以在Visual Studio中使用的另一种方法是将所有内容编译为二进制文件。您可以通过选择菜单Build>来实现。发布>取消选中“允许此预编译站点可更新”复选框。当然,这样做的缺点是即使页面HTML中最微小的变化也需要重新编译代码并重新部署它。

这是安全性和可管理性之间的明显权衡,但预编译也可以帮助提高性能。以下是对precompilation alternatives的一种解释。

您也可以考虑Key Configuration Settings When Deploying a Web Application中提出的建议。简而言之,

  

如果要将Web应用程序部署到可以控制的计算机上,例如公司内部网中的Web服务器或Web主机提供程序上的专用Web服务器,则可以使用machine.config中的元素强制Web服务器上的所有应用程序都遵循上面提供的建议(即使用自定义错误页面,禁用输出跟踪,并且没有在调试模式下编译自动编译的代码)。只需将以下标记添加到<system.web>元素中的machine.config文件中:

<deployment retail="true" />

同样,这是一个非常简单的改变。