使用IIS express的machine.config和processmodel

Tuv*_*iah 4 asp.net iis iis-7.5 webmatrix iis-express

我想知道在machine.config中修改processModel是否会对IIS Express集成模式应用程序产生任何影响?

我正在尝试将maxWorkerThreads修改为至少100,因为我在Windows 7上使用WCAT比较正常的IIS与IIS express,看看scott是否正确,他说IIS express没有连接限制.

尽管IIS express确实显示30个请求同时执行,而正常的IIS限制为10,但实际的每秒请求总数在两者之间是可比较的,IIS表示cpu使用率更高,平均70个请求排队,0个请求等待正常IIS!而四核i7的CPU仅为70%左右.肯定还有优化的空间?

额外细节

我已经在Windows 7上运行了WCAT结果,相同的脚本,到 http://d1yb9lkqglrfzu.cloudfront.net/IISExpress-100VU-MachineConfig.zip

  1. IIS Express每秒的请求数量更少,并且提供的事务总数比普通IIS高.
  2. IIS Express一次最多可执行50个请求,而Windows 7上的正常IIS仅限于10个设计.
  3. IIS express使用高出30%的cpu,可能是因为它一次处理的额外请求.
  4. 但平均而言,Express请求需要长时间才能完成.请参阅请求执行时间性能计数器和时间分析(第一个和最后一个字节).Express只能在服务的总请求中击败IIS,因为它可以一次处理更多请求!

理论

  1. 即使使用跟踪设置,IIS express也可以将每个请求打印到命令行窗口,这可能会减慢它的速度.

  2. 我还注意到在IIS express applicationhost.config中注册了很多其他模块,这些模块不在IIS applicationhost.config中.然后额外的调试/跟踪模块可能导致问题.

  3. 我注意到IIS express没有FileCache和HTTPCache模块.这可能是为什么?

我希望asp.net专家可以澄清如果IIS express不受限制,这些结果是如何可行的.

Jar*_*sky 6

Machine.config设置适用于在IISExpress中运行的asp.net应用程序.只要确保你匹配.Net版本和bitness(iisexpress只能在32位模式下运行,所以

  • %windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config 要么
  • %windir%\Microsoft.NET\Framework\v4.0.30319\CONFIG\machine.config 对于基于CLR版本的文件是正确的.不要编辑Framework64目录中的那个.

IIS Express不会限制连接,但操作系统本身可能存在一些限制.性能不是iis express的首要任务.IIS Express不会故意限制执行,但不会完全利用CPU.您的性能开销观察很有趣.我将探讨可能导致它的原因.您是否尝试在循环中运行单线程客户端应用程序以查看IIS与IIS Express的比较.