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