正如Maurico和codeka首先所说,如果您不希望您的会话受到网站重新编译和应用程序回收的影响,请不要使用默认的InProc 会话。
导致整个网站重新编译的原因列表:
默认情况下,当对网站中的顶级文件进行任何更改时,将重新编译整个网站。顶级文件包括global.asax文件以及bin/和App_Code/文件夹中的所有文件。
如果SectionInformation.RestartOnExternalChanges 属性为 true ,则配置包括文件更改
<section name="MyAppSettings" type="System.Configuration.AppSettingsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" restartOnExternalChanges =" true " requirePermission="false" />
笔记:
- 如果您希望能够更改顶级文件而不导致重新编译整个站点,可以将Web.config 文件中编译元素的optimizeCompilations 属性设置为 true
参考:
说明导致网站项目(而不是 Web 应用程序项目)重新编译自身的更改和文件类型的信息在哪里?
我问的原因是因为我们不希望用户丢失他们的会话。因此,我们希望仅在凌晨时分使用可重新编译的更改来更新实时网站,但更愿意在白天进行更改以加快速度。我们确实会先升级到登台服务器并在那里观看,但最好提前提供一个明确的列表。