是否可以在不停止 IIS 的情况下更新预编译站点的站点 dll。
目前,如果我尝试仅复制新文件以覆盖当前文件,则所有用户在复制文件时都会收到运行时错误。有没有办法避免这种情况?
是否可以在不停止 IIS 的情况下更新预编译站点的站点 dll。
目前,如果我尝试仅复制新文件以覆盖当前文件,则所有用户在复制文件时都会收到运行时错误。有没有办法避免这种情况?
即使您不停止,对 web.config 文件、BIN 文件夹、App_Data 或 App_Code 的任何更改都会强制 .NET 编译器执行...
并且您将丢失内存中的任何 Session 变量。
我所做的是在SQL 模式下使用会话状态,如果您的系统是这样设置的,用户将保留在站点中(在较长时间重新加载页面后)
.NET 仍会调用编译器来编译新的指令集,但很快就会完成,所有会话将从 SQL Server 读取,并且因为它们仍然存在(并且不会因内存刷新而丢失),用户将留在具有当前凭据的网站。
它比 In-Memory Session State 慢一点,但更可靠,特别是使用共享主机 :) 这是增加/减少会话分钟数的方法,因为共享主机不允许它改变,即使你做
Session.Timeout = 5;
他们的机器配置将覆盖您所做的一切,使用 SQL 会话状态,您将能够设置您的时间,因为这一切都是由 SQL Server 完成的。
随意阅读这篇文章,了解一切是如何完成的。
希望能帮助到你。