我读了无数文章,其中指定可以使用fcnMode =“ Disabled”更改web.config后禁用asp.net应用程序回收。
我想保留我的应用程序状态,并且在进行任何配置更改后都不允许回收,直到我决定回收为止。
我为IIS准备了这样的配置。
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.7.2"/>
<httpRuntime targetFramework="4.7.2" fcnMode="Disabled"/>
</system.web>
</configuration>
应用程序根目录中Web.Config的每次更改都会导致回收。
我写了这样简单的Controller来测试它。它保存在应用程序的静态变量开始(这是状态模拟)中。我在浏览器中查看页面,然后触摸/编辑web.config文件以查看IIS是否重新加载应用程序。我每次都看到一系列F5 /刷新时间没有改变,但是每次触摸/编辑之后都改变了-这意味着状态丢失并且应用程序被回收。
我也在调试器中对其进行了测试,并且Controller正在更改,因此应用程序正在回收。
public class HomeController : Controller
{
public static DateTime startDate = DateTime.Now;
// GET: Home
public ActionResult Index()
{
ViewBag.StartDate = startDate;
return View();
}
}
这是视图:
<h2>Index</h2>
<pre>
Process: @(System.Diagnostics.Process.GetCurrentProcess().ProcessName)
Process start date: @(System.Diagnostics.Process.GetCurrentProcess().StartTime)
Application domain start date (controller static variable): @(ViewBag.StartDate)
</pre>
在提问前先阅读文章: