关于ajax:是什么导致ASP.NET辅助进程被回收?

关于ajax:是什么导致ASP.NET辅助进程被回收?

What can cause an ASP.NET worker process to be recycled?

这是我当前的问题:

我猜我的问题(如下所述)是由ASP.NET辅助进程的回收引起的,按照下面的答案—我正在使用InProc会话存储,并且没有太大的移动机会由于其他存储类型的限制,所有会话对象都可以序列化。但是,我无法确定是什么原因使工作进程可以被回收,因为据我所知,app目录中的文件没有任何更改,以及选项在IIS中,这似乎意味着该进程将仅每1,740分钟进行一次回收,这比实际会话丢失的频率要少得多。因此,我的问题是,什么情况下可以导致ASP.NET辅助进程被回收?

这是我最初的问题:

我的ASP.NET Web应用程序中出现一个难以重现的问题。该应用程序具有一个主.aspx页,该页已加载并初始化许多会话变量。此页面使用ASP.NET Ajax Sys.Net.WebRequest类重复访问另一个.aspx页面,该页面使用会话变量进行数据库查询和更新主页(从不重新请求主页)。

有时,使用该页面一段时间后,会导致成功的HTTP请求(在主页中创建的会话正确地转移到了子页面)中,其中一个请求似乎导致创建了一个新的ASP.NET会话-所有会话变量都丢失(导致在我的代码中引发异常),并且在动态请求的页面中报告了新的会话ID。这意味着主页突然与服务器断开连接,就服务器而言,用户不再登录。

我几乎肯定这不是会话超时-超时时间设置为一些荒谬的事情,发生这种情况所需的时间是可变的,但永远不会足够长以致于导致会话超时,并且常量Sys.Net.WebRequests应该刷新会话计时器。

那么,还会发生什么事情导致HTTP请求与ASP.NET会话失去联系?不幸的是,当我遇到这种情况时,我一直没有嗅探网络流量,否则我会检查ASP.NET会话cookie是否卡住了。


当我们确实将AnkerEx应用程序迁移到
新服务器。新服务器具有Microsoft Windows Server 2008作为操作系统
和Microsoft Internet Information Services7。还在服务器中安装了
.NET Framework版本1.0.3705、1.1.4322、2.0.50727、3.0和3.5。
为了解决这个问题,我已经完成了对
ASP.NET 2.0中应用程序与生命周期相关的事件。我已添加到web.config:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
...
...
<system.web>
...
...
    <healthMonitoring>
      <rules>
        <add name="Application Events"
            eventName="Application Lifetime Events"
            provider="EventLogProvider"
            profile="Default"
            minInterval="00:01:00" />
      </rules>
    </healthMonitoring>
...
...

检查AppDomain回收对我们有帮助。我们可以在事件查看器中看到它。
指向更多详细信息的链接是http://blogs.msdn.com/rahulso/archive/2006/04/13/575715.aspx

添加完web.config后,事件查看器向我显示了
每当我单击到我的几乎任何链接时,应用程序都会重新启动
应用。
摘自http://blogs.msdn.com/toddca/archive/2005/12/01/499144.aspx的文章
发现ASP.NET具有新行为-例如,如果我们要删除的话
应用程序根目录的子目录,则ASP.NET 2.0将执行
重新启动AppDomain。

问题在于我在web.config中具有以下指令:

1
2
3
...
<compilation debug="true" tempDirectory="c:\\AnkerEx\\Temporary ASP.NET files">
...

即ASP.NET确实在我的应用程序根目录的文件夹中编译了aspx页面。
我认为他创建了文件夹,也许并且确实也删除了其中一些。我删除了
tempDirectory指令和应用程序开始稳定运行。


一种解决方案是使用StateServer,而不是InProc会话管理。

很多事情可能导致会话状态丢失:

  • 编辑Web.Config
  • IIS重置
  • 等等
  • 如果会话状态对您的应用很重要,请使用SQL状态管理或ASP附带的状态服务器。 NET。

    干杯,

    RB。


    我的猜测是内存消耗-但是,将IIS设置为记录日志回收,您肯定会知道。


    这可能是由于后台线程中未处理的异常引起的。它可能导致您的ASP.NET辅助进程终止。新进程很快启动,因此您实际上没有注意到它,但是所有会话都丢失了。

    这里有一篇文章比我能更好地解释它:ASP.NET 2.0未处理的异常问题

    引用:

    An unhandled exception in a running ASP.NET 2.0 application will usually terminate the W3WP.exe process, and leave you with a very cryptic EventLog entry something like this:

    "EventType clr20r3, P1 w3wp.exe, P2 6.0.3790.1830, P3 42435be1, P4 app_web_ncsnb2-n, P5 0.0.0.0, P6 440a4082, P7 5, P8 1, P9 system.nullreferenceexception, P10 NIL."

    此处是一篇Microsoft KB文章,解释了相同的问题:KB911816未处理的异常导致基于ASP.NET的应用程序在.NET Framework 2.0中意外退出。


    工作进程可能正在循环。
    http://www.lattimore.id.au/2006/06/03/iis-dropping-sessions/


    推荐阅读

      linux命令守护进程?

      linux命令守护进程?,系统,服务,环境,状态,名字,进程,异常,基础,代码,下来,如

      linux截取进程命令?

      linux截取进程命令?,系统,工作,状态,信息,进程,软件,地址,命令,标准,实时,lin

      linux退出进程命令?

      linux退出进程命令?,系统,软件,名称,代码,进程,报告,数字,暂停,状态,平台,lin

      linux下进程调试命令?

      linux下进程调试命令?,系统,工作,软件,信息,命令,基础,地址,状态,进程,实时,L

      linux命令限制进程?

      linux命令限制进程?,系统,时间,管理,周期,进程,命令,传播,地方,名称,标准,Lin

      linux长命令查看进程?

      linux长命令查看进程?,系统,状态,信息,数据,软件,进程,情况,总量,实时,命令,l

      linux切换进程命令?

      linux切换进程命令?,服务,系统,工具,地址,命令,基础,工作,标准,情况,状态,Lin

      linux查询命令进程?

      linux查询命令进程?,系统,名称,总量,情况,状态,进程,材料,工具,电脑,数据,怎

      linux命令如何杀进程?

      linux命令如何杀进程?,状态,系统,暂停,管理,进程,命令,平台,信息,工具,电脑,L

      linux常用命令查进程?

      linux常用命令查进程?,系统,情况,软件,工具,实时,代码,电脑,地址,总量,状态,

      linux命令进程状态?

      linux命令进程状态?,系统,状态,进程,命令,数据,管理,软件,名称,信息,参数,Lin

      linux查进程命令软件?

      linux查进程命令软件?,系统,软件,状态,进程,信息,命令,名称,数据,基础,表示,l

      linux中进程的命令?

      linux中进程的命令?,系统,进程,管理,状态,情况,信息,命令,平台,数据,实时,lin

      linux命令搜索进程?

      linux命令搜索进程?,系统,状态,软件,情况,进程,命令,代码,信息,数据,实时,如

      linux查看命令行进程?

      linux查看命令行进程?,系统,软件,信息,状态,进程,名称,实时,命令,数据,电脑,

      监视进程命令linux?

      监视进程命令linux?,系统,状态,工作,地址,信息,进程,软件,命令,数据,实时,如

      linux结束进程命令?

      linux结束进程命令?,系统,软件,管理,进程,名称,数据,单位,状态,数字,代码,Lin

      linux杀进程命令图片?

      linux杀进程命令图片?,系统,工具,图片,进程,管理,名称,传播,工作,命令,后台,L

      linux命令查找进程?

      linux命令查找进程?,系统,名称,软件,状态,进程,电脑,信息,命令,材料,数据,怎

      linux命令校验进程?

      linux命令校验进程?,服务,系统,情况,状态,异常,进程,命令,管理,检测,平台,Lin