【发布时间】:2018-07-27 18:35:33
【问题描述】:
在 IIS 中,我可以选择更改控制应用程序池何时回收的定期重启设置。大多数属性对我来说都是有意义的(内存、私人内存、时间),除了一个:“请求”。微软文档 声明“请求”属性:
"指定工作进程在处理特定数量的请求后应该被回收。默认值为0,即禁用该属性。"
我的问题是:既然默认值允许无限请求(这对我来说很有意义),那么为什么生产应用程序限制这些请求会有好处呢?应用程序池回收会丢失应用程序的会话数据,这似乎有点愚蠢,因为许多请求已经过去。限制服务器请求的数量是否可以防止 DDOS 攻击或我忽略的其他问题?为什么有人会因为正在使用应用程序而希望回收应用程序池?
【问题讨论】:
-
Stack Overflow 不是教育网站,而是具体问题。服务器将无法根据其硬件和软件处理无限的请求,因此您应该始终设置合理的限制,然后规划容量。太宽泛的问题,你应该参考具体的书籍或教程。
-
@LexLi 如果您更仔细地阅读我的问题(或者对 IIS 有更好的理解),硬件应该无关紧要,因为 iis 不是指请求/时间,而是在回收事件之前的请求总数发生。至于教程,这不是其中的内容,因为它太具体了。如果您需要参考资料,我可以向您展示许多流行的问题,这些问题涉及广泛的问题,例如“为什么要使用接口而不是父类”;这对我来说听起来很有教育意义。堆栈溢出是关于教育,而不是简单地为人们做编程作业
-
让我简单地否决这个问题,以反映您没有说得足够清楚。应用程序池至少有两个请求编号设置,docs.microsoft.com/en-us/iis/configuration/… 中的
queueLength和 docs.microsoft.com/en-us/iis/configuration/… 中的requests。您应该尝试修改问题以说明您指的是哪个设置。 -
@LexLi 好吧,假设您因为我的问题实际上很糟糕而投反对票,那么我对此没有任何问题。但是,假设您实际上是在尝试提供帮助:问我问题的更好方法是什么?我不完全确定是什么让我的问题过于模糊,以及为什么我不能问一个可以教育我的问题。我根据您的建议重写了我的问题;建设性的批评表示赞赏。
-
检查了您的更新。看起来更好,但对于答案来说仍然太宽泛。将其拆分为较小的线程后,您应该会发现大量现有线程,例如 stackoverflow.com/questions/7171367/… 和 stackoverflow.com/questions/133236/asp-net-session/… 您所说的设计“似乎有点傻”,您只是对相关主题的阅读太少了。跨度>
标签: asp.net iis webforms httprequest windows-server-2008