gpt4 book ai didi

asp.net - 如何查明 ASP.NET Web 应用程序重新启动的原因

转载 作者:行者123 更新时间:2023-12-02 16:28:49 25 4
gpt4 key购买 nike

在我的网络应用程序中,由于某种原因,每次请求后都会调用 Application.End 并重新启动应用程序。当我在 Applicaion_End 中设置断点时,我没有得到有用的堆栈跟踪。此外,事件查看器中没有任何条目。根据 MSDN,以下情况可能会导致应用程序重新启动:

  • Adding, modifying, or deleting assemblies from the application's Bin folder.
  • Adding, modifying, or deleting localization resources from the App_GlobalResources or App_LocalResources folders.
  • Adding, modifying, or deleting the application's Global.asax file.
  • Adding, modifying, or deleting source code files in the App_Code directory.
  • Adding, modifying, or deleting Profile configuration.
  • Adding, modifying, or deleting Web service references in the App_WebReferences directory.
  • Adding, modifying, or deleting the application's Web.config file.

我猜我的代码更改了一些文件,从而触发应用程序重新启动。有没有办法找出到底是什么原因导致应用程序重新启动?

编辑:我现在通过逐步执行代码并观察资源管理器中的时间戳解决了我的问题。在应用程序启动时,我正在从访问数据库中读取一个值,这会导致创建和删除 .ldb 文件。然而,这个问题尚未得到解答。是否有任何日志记录导致应用程序重新启动的此类事件?

最佳答案

Tess Ferrandez 写得很好 blog post关于如何确定 App Domain 回收的原因。关于如何记录重启事件,Tess 有这样的说法:

How do you determine what caused an appdomain restart? In ASP.NET 2.0 you can use the built in Health Monitoring Events to log application restarts along with the reason for the restart. To do this you change the master web.config file in the C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG directory and add the following section

<healthMonitoring>
<rules>
<add name="Application Lifetime Events Default"
eventName="Application Lifetime Events"
provider="EventLogProvider" profile="Default" minInstances="1"
maxLimit="Infinite" minInterval="00:01:00" custom="" />

要打开 IIS6 的日志记录,您可以使用:

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

对于 IIS7,您可以通过 IIS 管理器 - 应用程序池 - 高级设置来控制它。

关于asp.net - 如何查明 ASP.NET Web 应用程序重新启动的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8678024/

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