为什么在IIS 8.5中fcnMode =“ Disabled”不起作用-对web.config的任何编辑都会导致应用回收?

时间:2019-05-28 11:03:58

标签: asp.net iis iis-8.5 .net-4.7.2

我读了无数文章,其中指定可以使用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>

在提问前先阅读文章:

  1. https://docs.microsoft.com/en-us/dotnet/api/system.web.configuration.fcnmode?view=netframework-4.8
  2. How to prevent an ASP.NET application restarting when the web.config is modified?
  3. 3。

0 个答案:

没有答案