简体   繁体   English

IIS 7.5(Windows 7)中的请求限制

[英]Requests limit in IIS 7.5 (Windows 7)

I have experienced some troubles when using the IIS server at my workstation with Windows 7. This is a development machine and I don't need to use it as a production server or anything, but for some tests it's quite usefull to see what happens when a lot of requests comes concurrently (in this case even in the same session). 在带有Windows 7的工作站上使用IIS服务器时,我遇到了一些麻烦。这是一台开发机器,不需要将它用作生产服务器或其他任何东西,但是对于某些测试,了解当发生什么情况时非常有用并发有很多请求(在这种情况下,即使是在同一会话中)。

I have learned that with my edition of Windows 7, the limit of requests is 10, but I thought it only means the limit of requests that can be served at any point of time. 我了解到,在Windows 7版本中,请求数限制为10,但是我认为这仅意味着可以在任何时间点处理的请求数限制。 What I am experiencing instead, is that after firing 10 requests one by one, if the first one didn't complete before the last one was fired, it never completes . 我正在经历的是,一个接一个地触发10个请求后,如果第一个请求在最后一个被触发之前没有完成则它永远不会完成 The whole IIS is dead, no further requests are put in the worker process queue (there are already 10 requests there hanging so it kinda makes sense) and the only way to go on is to restart. 整个IIS已经死了,没有其他请求放入工作进程队列中(已经有10个请求挂在这里,所以这很有意义),唯一的方法是重新启动。

Is this a standard behavior that cannot be changed on Windows 7 and does firing 10 requests really have to kill IIS (or at least the current worker process) ? 这是Windows 7上无法更改的标准行为,并且触发10个请求确实必须杀死IIS(或至少是当前工作进程)吗? Is there some way to change the configuration to fix it (without compromising the setup by creating bunch of worker processes etc.) ? 是否有某种方法可以更改配置以进行修复(而不会通过创建大量工作进程等来损害设置)?

There is a 10 connection limit in client editions of Windows (related to file server and similar functions). Windows客户端版本中有10个连接限制(与文件服务器和类似功能有关)。 As I understand it there is no such limit for HTTP requests in IIS. 据我了解,IIS中对HTTP请求没有这种限制。

I would assume that it was far more likely to be my code—some deadlock or other concurrency bug appearing when some level of concurrency reached. 我认为这很可能是我的代码-当达到一定程度的并发时会出现一些死锁或其他并发错误。

To investigate I would start with a debugger (if you have VS Ultimate then IntelliTrace should really help). 为了进行调查,我将从调试器开始(如果您使用VS Ultimate,那么IntelliTrace应该会真正提供帮助)。 But also consider taking a process dump when you get a hang and then load into the debugger to see what each worker thread is doing. 但是,还应该考虑在挂起时进行进程转储,然后加载到调试器中以查看每个工作线程在做什么。 . procdump from SysInternals will dump your worker process. procdump将转储您的工作进程。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM