代码之家  ›  专栏  ›  技术社区  ›  Slavo

是什么导致IIS中的应用程序池被回收?

  •  67
  • Slavo  · 技术社区  · 17 年前

    我一直在搜索有关这方面的信息,但没有结果。我为什么需要这个的背景是 another question I asked here . 更具体地说,在App_数据中创建/更新/删除文件是否会导致池循环?

    如果有人能提供一份导致回收的详细清单,那就太好了。

    使现代化

    6 回复  |  直到 9 年前
        1
  •  40
  •   Mitchel Sellers    17 年前

    你在另一篇文章中喜欢的那篇文章实际上做得很好。

    • Web.config更改
    • Machine.config更改
    • Bin目录更改
    • 应用程序代码更改

    延迟回收

    可能会在其他位置发生多个更改,通常,我只注意到对.aspx或.cs/.vb文件的更改。添加临时文本、csv或其他文件并没有给我带来问题。

        2
  •  32
  •   Michael come lately PhiLho    7 年前

    您正在写入要重新编译的受监视文件夹。这将在某个点触发AppDomain重新创建。

        3
  •  27
  •   Christopher G. Lewis    17 年前

    您可能希望打开完整的AppPool回收事件日志:

    cscript adsutil.vbs Set w3svc/AppPools/DefaultAppPool/LogEventOnRecycle 255 
    

    您可能还想看看Scott Guthrie的这篇博客文章: http://weblogs.asp.net/scottgu/archive/2005/12/14/433194.aspx 这显示了如何在Global.ASAX中编写代码来记录Application.End事件的实际原因。

        4
  •  2
  •   Ben Scheirman    17 年前

    这可以根据首选项每天发生,也可以在超过进程的最大虚拟内存时发生。

        5
  •  1
  •   Milner    17 年前

    这是一个设置,您可以根据应用程序池已运行的分钟数或已处理的请求数对其进行操作以回收应用程序池。

    IIS重置也可以做到这一点,停止/启动服务也是如此。

        6
  •  0
  •   Jesus is Lord    8 年前

    w3wp.exe Application_Start 被叫进来 Global.asax .

    为了找到答案,我打开了 事件查看器 .

    Windows日志

    我看到一个 应用程序错误

    Faulting application name: w3wp.exe, version: 10.0.16299.15, time stamp: 0x0aeb5595
    Faulting module name: KERNELBASE.dll, version: 10.0.16299.334, time stamp: 0x6369e29f
    Exception code: 0xe0434352
    Fault offset: 0x0000000000014008
    Faulting process id: 0x2900
    Faulting application start time: 0x01d43b16f726cbb9
    Faulting application path: c:\windows\system32\inetsrv\w3wp.exe
    Faulting module path: C:\WINDOWS\System32\KERNELBASE.dll
    Report Id: 998cf55d-2cd9-4b8d-9884-2110e3fd1411
    Faulting package full name: 
    Faulting package-relative application ID: 
    
    推荐文章