我看到过一些帖子说不能将静态压缩与 IIS 重写模块出站规则结合使用。
在我们的配置中,我们没有任何出站规则,只有入站规则(用于将 IIS 配置为反向代理)
动态压缩有效,但静态压缩无效。
有人能确认使用入站规则时静态压缩是否被禁用吗?
- 我已启用跟踪,但看不到任何静态压缩失败消息
- 如果重写规则被禁用,则静态压缩有效。
- Windows 服务器 2012 / IIS 8.5
以下是来自反向代理站点和下游站点(均在同一台机器上的 IIS 中运行)的跟踪日志的片段。
在反向代理站点日志中,您可以看到 StaticCompressionModule 已加载,但立即失败并引发 NOTIFY_MODULE_END 事件。此日志中没有“STATIC_COMPRESSION_*”条目。
这似乎表明静态压缩虽然已启用,但对该站点不起作用。
然而,在下游站点中,您可以看到为 StaticCompressionModule 记录了 STATIC_COMPRESSION_START 事件。不久之后,出现了 STATIC_COMPRESSION_NOT_SUCCESS (COMPRESSION_DISABLED) 条目,但这是预料之中的,因为此站点已禁用静态压缩。
跟踪日志(反向代理站点)
<EventData>
<Data Name="ContextId">{800000D4-0001-FA00-B63F-84710C7967BB}</Data>
<Data Name="OldHandlerName">StaticFile</Data>
<Data Name="NewHandlerName">ApplicationRequestRoutingHandler</Data>
<Data Name="NewHandlerModules">ApplicationRequestRouting</Data>
<Data Name="NewHandlerScriptProcessor"></Data>
<Data Name="NewHandlerType"></Data>
</EventData>
<EventData>
<Data Name="ContextId">{800000D4-0001-FA00-B63F-84710C7967BB}</Data>
<Data Name="ModuleName">StaticCompressionModule</Data>
<Data Name="Notification">16</Data>
<Data Name="fIsPostNotification">false</Data>
</EventData>
<RenderingInfo Culture="en-GB">
<Opcode>NOTIFY_MODULE_START</Opcode>
<Keywords>
<Keyword>RequestNotifications</Keyword>
</Keywords>
<freb:Description Data="Notification">MAP_REQUEST_HANDLER</freb:Description>
</RenderingInfo>
<ExtendedTracingInfo xmlns="http://schemas.microsoft.com/win/2004/08/events/trace">
<EventGuid>{002E91E3-E7AE-44AB-8E07-99230FFA6ADE}</EventGuid>
</ExtendedTracingInfo>
</Event>
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="WWW Server" Guid="{3A2A4E84-4C21-4981-AE10-3FDA0D9B0F83}"/>
<EventID>0</EventID>
<Version>1</Version>
<Level>5</Level>
<Opcode>2</Opcode>
<Keywords>0x100</Keywords>
<TimeCreated SystemTime="2018-04-25T12:38:00.482Z"/>
<Correlation ActivityID="{800000D4-0001-FA00-B63F-84710C7967BB}"/>
<Execution ProcessID="5964" ThreadID="5132"/>
<Computer>QA-CAMC01</Computer>
</System>
<EventData>
<Data Name="ContextId">{800000D4-0001-FA00-B63F-84710C7967BB}</Data>
<Data Name="ModuleName">StaticCompressionModule</Data>
<Data Name="Notification">16</Data>
<Data Name="fIsPostNotificationEvent">false</Data>
<Data Name="NotificationStatus">0</Data>
</EventData>
<RenderingInfo Culture="en-GB">
<Opcode>NOTIFY_MODULE_END</Opcode>
<Keywords>
<Keyword>RequestNotifications</Keyword>
</Keywords>
<freb:Description Data="Notification">MAP_REQUEST_HANDLER</freb:Description>
<freb:Description Data="NotificationStatus">NOTIFICATION_CONTINUE</freb:Description>
</RenderingInfo>
<ExtendedTracingInfo xmlns="http://schemas.microsoft.com/win/2004/08/events/trace">
<EventGuid>{002E91E3-E7AE-44AB-8E07-99230FFA6ADE}</EventGuid>
</ExtendedTracingInfo>
</Event>
跟踪日志(下游 IIS 站点)
<EventData>
<Data Name="ContextId">{80000054-0000-F800-B63F-84710C7967BB}</Data>
<Data Name="OldHandlerName"></Data>
<Data Name="NewHandlerName">StaticFile</Data>
<Data Name="NewHandlerModules">StaticFileModule,DefaultDocumentModule,DirectoryListingModule</Data>
<Data Name="NewHandlerScriptProcessor"></Data>
<Data Name="NewHandlerType"></Data>
</EventData>
<EventData>
<Data Name="ContextId">{80000054-0000-F800-B63F-84710C7967BB}</Data>
<Data Name="ModuleName">StaticCompressionModule</Data>
<Data Name="Notification">16</Data>
<Data Name="fIsPostNotification">false</Data>
</EventData>
<RenderingInfo Culture="en-GB">
<Opcode>NOTIFY_MODULE_START</Opcode>
<Keywords>
<Keyword>RequestNotifications</Keyword>
</Keywords>
<freb:Description Data="Notification">MAP_REQUEST_HANDLER</freb:Description>
</RenderingInfo>
<ExtendedTracingInfo xmlns="http://schemas.microsoft.com/win/2004/08/events/trace">
<EventGuid>{002E91E3-E7AE-44AB-8E07-99230FFA6ADE}</EventGuid>
</ExtendedTracingInfo>
</Event>
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="WWW Server" Guid="{3A2A4E84-4C21-4981-AE10-3FDA0D9B0F83}"/>
<EventID>0</EventID>
<Version>1</Version>
<Level>4</Level>
<Opcode>1</Opcode>
<Keywords>0x40</Keywords>
<TimeCreated SystemTime="2018-04-25T12:38:00.480Z"/>
<Correlation ActivityID="{80000054-0000-F800-B63F-84710C7967BB}"/>
<Execution ProcessID="2548" ThreadID="3020"/>
<Computer>QA-CAMC01</Computer>
</System>
<EventData>
<Data Name="ContextId">{80000054-0000-F800-B63F-84710C7967BB}</Data>
</EventData>
<RenderingInfo Culture="en-GB">
<Opcode>STATIC_COMPRESSION_START</Opcode>
答案1
感谢@milope - 他找出了问题的原因(见评论)。解决方案是在代理站点上禁用静态压缩。然后在应用程序请求路由缓存 IIS 模块中启用带压缩的缓存。