Asp.net aspnet_wp.exe自动重新启动

Asp.net aspnet_wp.exe自动重新启动,asp.net,iis,machine.config,Asp.net,Iis,Machine.config,我们的web应用程序在.NET1.1上,我们有一些遗留代码,每隔几天就会挂断IIS 我曾考虑过修改machine.config设置,每隔几天重新启动一次aspnet进程,但问题是它会杀死进程中现有的会话。我能设法避免吗 有没有更好的方法来处理这种情况?现在,客户端每隔几天后手动重新启动IIS 谢谢, A 编辑: 如果你有 -会话中不可序列化的对象, -无法使用sql server 那么好的解决方法就是使用“idleTimeout”。如果在指定的时间之前服务器上没有任何活动,它将关闭asp_net

我们的web应用程序在.NET1.1上,我们有一些遗留代码,每隔几天就会挂断IIS

我曾考虑过修改machine.config设置,每隔几天重新启动一次aspnet进程,但问题是它会杀死进程中现有的会话。我能设法避免吗

有没有更好的方法来处理这种情况?现在,客户端每隔几天后手动重新启动IIS

谢谢, A

编辑: 如果你有 -会话中不可序列化的对象, -无法使用sql server

那么好的解决方法就是使用“idleTimeout”。如果在指定的时间之前服务器上没有任何活动,它将关闭asp_net进程。在下一个请求中,它生成asp\U net进程

我建议两件事:

  • 将应用程序配置为-这允许会话数据在web应用程序重新启动后继续存在
  • 将应用程序池配置为定期回收工作进程:

当然,更好的做法是将web应用程序更新到最新的框架版本,同时解决问题,以防止这种情况发生。

您是否确实在会话中存储了任何类型的数据?如果是,它是可序列化的吗?如果是,只需将Web.config更改为使用

您只需转到控制面板-->管理工具-->服务并将ASP.NET状态服务器设置为自动启动,即可自动启动ASP.NET状态服务


这将允许您在不丢失会话信息的情况下重新启动aspnet_wp.exe进程;同样,唯一的要求是您在会话中输入的信息是可序列化的(这很可能是这样的,或者如果您的代码没有做任何疯狂的事情,至少应该很容易做到)

来到新的.net FW不是我们的选择(公司战略-我们正在重新编写)。使用sql server是一个好主意,但客户端没有这方面的许可证。我想我会在没有活动会话时使用idleTimeout重新启动..重写应该可以:-)只是.NET1.1网站越来越难以维护。我刚才提到它是为了完整性,您应该能够通过配置应用程序池设置来满足您的需求。2011年使用.NET 1.1的“公司战略”被称为失败。@Chris我同意-但正如OP所写,他们正在完全重写它。@marapet谢谢:)这是一个8-9年的应用程序,没有标准或最佳编码实践……谢谢,但我的会话变量中确实有不可序列化的对象。。我认为idleTimeout是我最好的解决方案,因为我不能重新编写应用程序,也不能使用sql server或state server。。。谢天谢地,生产站点中的所有anywayidle timeout几乎都不是一个可行的解决方案,因为任何生产站点都应该有足够频繁的监视,以使其不会空闲。如果您将监控设置为超过空闲时间点,您将经常收到站点关闭的误报,站点正在激活,并且未能“及时”响应。我不明白,idleTimeout会关闭站点,并且一旦新请求到达服务器,它就会启动asp_net进程?如果我错了,请纠正我假设您将空闲时间设置为15分钟不活动。您有一个监控服务,每30分钟轮询一次您的站点。当站点空闲时,监视服务将是激活站点的被调用方。包含激活的初始请求明显比正常请求慢(很容易超过1分钟)。如果响应时间超过X秒,许多监视器会自动将网站标记为失败。这可能会导致在深夜的许多电子邮件说你的服务在真的不是时候被否决了。同意,但是因为我们现有的遗留应用程序,IIS在一两天内开始内存膨胀(代码写得很好)。我们不打算更新它,因为我们已经在重新编写它的过程中。我想目前这是正确的方法。对吗?使用空闲超时不是一个聪明的方法,但是使用应用程序池自动回收是一个可以接受的权宜之计(比在应用程序池损坏后手动回收要好得多)