gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 12:10:19 24 4
gpt4 key购买 nike

Mauricocodeka首先声明,不要使用默认的InProc sessions如果您不希望您的 session 受到网站重新编译和应用程序回收的影响。

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

  1. 默认情况下,当对网站中的顶级文件进行任何更改时,整个网站都会重新编译。顶级文件包括 global.asax 文件以及 bin/App_Code/ 文件夹中的所有文件。

  2. 修改web.config

  3. 配置包含文件更改,如果 SectionInformation.RestartOnExternalChanges property是真的

    <部分 名称=“我的应用程序设置” 类型 =“System.Configuration.AppSettingsSection,System.Configuration,版本=2.0.0.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a” restartOnExternalChanges="true" requirePermission="false"/>

注释:

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

引用文献:

<小时/>

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

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

最佳答案

不仅当您的网站重新编译时,而且当 IIS 工作进程被回收时,您都会丢失 session 。从技术上讲,这可能随时发生(有一些方法可以将其最小化,但我更喜欢构建能够在工作进程回收中幸存的应用程序),因此,如果 session 很重要,那么您确实需要将它们存储在进程外。

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

很多人会告诉你,在 SQL Server 中存储 session 状态是一个性能问题,但我不同意:由于进程回收而丢失 session 比 SQL Server 的性能更值得关注。此外,如果您真正需要的话,ASP.NET 状态服务器会更快(如果您想在电源周期后继续运行,您甚至可以编写一个自定义提供程序,将状态存储在 NoSQL 数据库中!)

关于asp.net - ASP.NET 网站项目何时重新编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2625458/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com