有没有简单的方法来部署/发布用asp.net编写的网站?部署和发布有什么区别?
这是一个网站,显示了如何完成此任务的不同技术.有许多技术可用作Web应用程序的部署策略:
Beansoftware如何部署ASP.NET Web应用程序
Alt + B + H组合(打开ASP.NET网站/应用程序的发布窗口)是将应用程序部署到所需位置的最简单方法.
发布用于编译和部署应用程序到服务器.
嗯,这取决于您从正常运行时间/可用性的角度来看要实现的目标.publish/xcopy/installer选项很有意思,但都忽略了解决这些选项需要时间才能完成的问题.从第一个文件复制到目录的时间到最后一个文件在站点中复制的时间处于不一致状态.
ASPX文件可能引用不在bin目录中的数据层对象,或者bin目录可能在函数上有一个带有更改的params集的DLL,但是aspx尚未安装,所以aspx仍在寻找旧功能.简而言之,因为部署不是原子过程,您可能/将会遇到问题.
我们通过将新文件安装到新目录,然后进入IIS并将网站更改为指向新目录来解决此问题.这使得更改成为原子过程并使事情变得更加顺畅.它完美吗?不.您可以拥有viewstate问题或会话问题(会话被保留,但是新代码可能会查找旧代码未设置的会话中的内容),但它仍然使流程更加顺畅.
当然,这些解决方案都没有涉及升级网站......数据库的其他非原子部分.同样,更改数据库架构的过程需要时间.您是先升级代码还是先升级数据库?DB更改是否可以更改代码更改(支持null或具有默认值的新列),或者代码更改是否可以更改数据库更改(删除列)?这是一个案例分析,并未通过任何这些解决方案解决
当然,如果你可以让你的用户离开网站一段时间,那么生活会更容易,但如果你想要达到100%的正常运行时间,那就不那么简单了.