当网站被少量+5用户使用并且我进行VIP交换时,我总是得到SQL错误,例如:
System.Data.Entity.Core.EntityCommandExecutionException: An error occurred while executing the command definition. See the inner exception for details. ---> System.Data.SqlClient.SqlException: A transport-level error has occurred when receiving results from the server. (provider: Session Provider, error: 19 - Physical connection is not usable)
我正在使用SqlAzureExecutionStrategy
。 VIP交换期间的其他请求似乎需要大约30秒才能使网站真正无响应,尽管已经完全预热了暂存环境。
答案 0 :(得分:2)
当网站积极投入生产时,您实际上是在交换实时代码。你肯定会遇到各种各样的错误。在服务不存在的情况下,总会有一瞬间。部署新的sql架构时也是如此。
你需要做的是意识到这将会发生并围绕它进行设计。一个强大的开发团队真的很棒。我个人所做的是在不同地区进行分阶段部署。当我升级东海岸时,我会让交通管理员将所有流量指向西海岸网络服务器。然后在更新西海岸的时候把所有的交通指向东海岸。然后我将流量管理设置恢复正常。
要从东向西分配流量,通常会使用流量管理器设置单个端点,流量管理器将幕后指向正确的端点,就像代理一样。只需删除您要升级的端点,这将强制重定向到实际站点。升级完成后,重新添加端点。
您还应确保代码能够很好地处理错误。例如,如果需要与外部系统同步,并且在升级期间将单个记录输入到系统而不是外部,则可以使用您的数据重建外部系统的状态,反之亦然。
答案 1 :(得分:1)
我终于采取步骤切换到Azure Web Apps 而不是云服务,所有这些问题都已解决,甚至更多。
花了几天的时间,但绝对值得切换。
为意外离开暂存服务器付费也是过去的问题。