只是想知道部署ASP.Net网站的最佳选择是什么。目前我只是将代码放在服务器上的一个文件夹中,并在IIS上创建一个虚拟目录,引用该文件夹。然后我在服务器上的VS2008中打开网站并构建它。虽然它对我来说工作正常,但我不确定我是否遵循最佳部署方法。
感谢。
答案 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更可取。
根据您的团队规模,您可以:
我主张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" />
同样,这是一个非常简单的改变。