我们的图片服务器出现了一些问题。
这是运行IIS 7.5的Win 2008,它只提供静态内容:图像。
它已经运行了很长一段时间,直到最近当我们禁用输出caching时,我们注意到它启用意味着它发送了无caching主机头到客户端(迫使他们每次从服务器获取图像)
我们已经读了很多关于它的内容,似乎IIS正是这样工作的 – 无论是使用输出caching还是使用caching主机头。
无论如何,已经禁用了输出caching,我们现在经历了5分钟的随机间隔,其中所有的请求都得到503服务不可用。 在此期间,“文件caching”性能计数器错开(既不增加也不减less),并且在这段时间之后所有的caching都被刷新。
您可能会发现我谈论caching很奇怪,因为我们禁用了输出caching。
事情是我们改变了registry中的ObjectTTL参数,所以我们caching文件3分钟(这工作得很好,我们的磁盘I / O显着下降)
所以,即使输出caching被禁用,我们仍然caching大量的文件 – 如果我们可以摆脱随机503这将是完美的: – D
在这503个间隔期间,我们在Windows事件日志中没有收到任何消息,所以我们很难确定要做什么。
任何想法都非常欢迎:-)
也许问题是RequestQueue / ConcurrentRequest限制。 考虑在这个堆栈溢出问题接受的答案的设置:
通用处理程序(.ashx)实现IHttpAsyncHandler的IIS 7.0 503错误
要消除所需的503个错误3个不同的configuration更改:
machine.config中:
<configuration> ... <system.web> ... <processModel enable="true" requestQueueLimit="100000"/>IISpipe理器> ApplicationPools>高级设置
Queue Length : 65535最后(谜题的缺失部分), 命令行:
appcmd.exe set config /section:serverRuntime /appConcurrent
我们终于解决了这个问题。
这显然是由IIS检查子目录中的web.config更改造成的。
通过在applicationhost.config文件中设置allowSubDirConfig =“false”,问题就停止了。
这有点奇怪,因为我们没有超过1个web.config文件,它在项目的根目录 – 如果它工作,为什么抱怨: – D