c# - 使用 ASP.NET 网站进行持续部署?

标签 c# .net asp.net session-state continuous-deployment

我有一个用 C#/ASP.NET 编写的网站,目前正在开发中。当我们在生产中时,我想在一天中频繁发布,因为我们修复错误并添加功能(例如:http://toni.org/2010/05/19/in-praise-of-continuous-deployment-the-wordpress-com-story/)。

如果您上传网站的新版本甚至更改单个文件,它会踢出当前登录的用户并让他们重新开始任何表单等。在不干扰 .NET 站点用户的情况下进行部署是否有秘诀?

最佳答案

如果您对配置文件、应用程序的 bin 文件夹的内容或类似内容进行了更改,ASP.NET 工作进程将与您的应用程序一起重新启动。

这会导致删除 session 和踢出用户。

解决方案是使用默认的InProc以外的其他 session 存储方式。
您可以通过设置 session state mode 来实现此目的. SqlServerStateServer 选项可以很好地解决您的问题。

SqlServer 模式相对容易设置、启动和运行。 (基本上,它只是创建一个数据库,运行 aspnet_regsql,然后将其指定到配置中。)如果您没有 MS SQL Server 或不想使用它,您可以使用 StateServer ,或创建您自己的提供者并使用 Custom 模式。

唯一的限制是您只能使用 SqlServerStateServer 模式存储可序列化的值。

关于c# - 使用 ASP.NET 网站进行持续部署?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2868708/

相关文章:

c# - 为什么不能在类级别使用 'NonSerialized' 属性?如何防止类的序列化?

c# - 这是斯巴达,还是?

c# - 具有嵌入式功能的 Linq

c# - 普通类型转换和使用 “AS” 关键字有什么区别

asp.net - 在我的 UpdatePanel 完成加载其 DOM 元素后,如何从我的代码隐藏执行 JavaScript?

c# - MVC4 动态 Controller 路径?

javascript - Ajax Minifier (AjaxMin) - JavaScript 的 EvalTreatment?

.net - Subversion 保存到哪里?

c# - C# 和 Godaddy 服务器发送电子邮件错误

html - 溢出 :scroll in horizontal direction is not working