加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET网站项目何时重新编译?

发布时间:2020-12-16 06:43:01 所属栏目:asp.Net 来源:网络整理
导读:正如 Maurico和 codeka首次声明的那样,如果您不希望会话受到网站重新编译和应用程序回收的影响,请不要使用默认的 InProc sessions. 导致整个网站重新编译的原因列表: 默认情况下,如果对网站中的顶级文件进行任何更改,则会重新编译整个站点.顶级文件包括glob
正如 Maurico和 codeka首次声明的那样,如果您不希望会话受到网站重新编译和应用程序回收的影响,请不要使用默认的 InProc sessions.

导致整个网站重新编译的原因列表:

>默认情况下,如果对网站中的顶级文件进行任何更改,则会重新编译整个站点.顶级文件包括global.asax文件以及bin /和App_Code /文件夹中的所有文件.
>修改web.config
>如果SectionInformation.RestartOnExternalChanges property为真,则配置包括文件更改

<节
????NAME = “MyAppSettings”
????type =“System.Configuration.AppSettingsSection,System.Configuration,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a”
????restartOnExternalChanges = “真”
????requirePermission =“false”/>

笔记:

>如果您希望能够在不导致重新编译整个站点的情况下更改顶级文件,则可以将Web.config文件中的编译元素的optimizeCompilations attribute设置为true

参考文献:

> Understanding ASP.NET Dynamic Compilation

哪些信息告诉导致网站项目(而不是Web应用程序项目)的更改和文件重新编译?

我问的原因是因为我们不希望用户丢失会话.因此,我们希望仅在凌晨时分更新实时网站并进行可重新编译的更改,但我们希望在白天进行更改以加快它们的速度.我们首先会升级到临时服务器并在那里观看,但是一个明确的列表会提前很好.

解决方法

您不仅会在重新编译网站时丢失会话,而且还会在IIS工作进程被回收时丢失会话.从技术上讲,这可能在任何时候发生(有办法将其最小化,但我更喜欢构建能够在工作流程中循环使用的应用程序),因此如果会话非常重要,那么您确实需要将它们存储在进程外.

ASP.NET附带一个内置的“状态服务器”,它只是一个存储会话状态的Windows服务.另一种选择是使用SQL Server会话状态存储.

很多人会告诉你,在SQL Server中存储会话状态是一个性能问题,但我不同意:由于进程循环而丢失会话比SQL Server的性能更令人担忧.除了你真正需要的东西之外,ASP.NET状态服务器更快(如果你想在电源循环中存活,你甚至可以编写一个在NoSQL数据库中存储状态的自定义提供程序!)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读