GIS网站启用Cookie时瓦片加载极慢,求IIS针对性优化方案
方法1:IIS URL重写模块清空瓦片请求的Cookie
- 打开IIS管理器,定位到目标站点,进入URL重写模块
- 创建空白规则,配置如下:
- 匹配URL:
- 请求路径:使用正则表达式
*.(png|jpg|tif)(根据你的瓦片实际格式调整后缀) - 匹配类型:
正则表达式
- 请求路径:使用正则表达式
- 操作设置:
- 操作类型:
自定义响应头 - 名称:
Set-Cookie - 值:
ASP.NET_SessionId=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT - 勾选「替换现有值」
- 操作类型:
- 匹配URL:
- 保存规则后,所有瓦片请求的响应会清空会话Cookie,后续请求不再携带Cookie
方法2:通过web.config指定路径禁用会话状态
在站点根目录的web.config中添加以下配置,针对瓦片所在路径(比如/tiles/)禁用会话:
<!-- 替换path值为你的瓦片实际路径,或直接用*.png匹配所有图片 --> <location path="tiles"> <system.web> <sessionState mode="Off" /> </system.web> </location>
该配置会让指定路径下的请求不参与ASP.NET会话流程,自然不会生成或接收会话Cookie,不影响站点其他功能的Cookie使用
方法3:静态瓦片资源的IIS优化配置
如果瓦片是静态文件,可通过以下配置优化:
- 确保IIS启用静态内容功能
- 在
web.config中添加静态资源缓存及Cookie移除规则:
<staticContent> <!-- 设置静态资源缓存有效期,减少重复请求 --> <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" /> </staticContent> <location path="*.png"> <system.webServer> <rewrite> <outboundRules> <!-- 移除图片响应中的Cookie --> <rule name="Remove Cookies for Images"> <match serverVariable="RESPONSE_Set_Cookie" pattern=".*" /> <action type="Rewrite" value="" /> </rule> </outboundRules> </rewrite> </system.webServer> </location>
补充说明
- 迁移后Cookie导致性能下降的根源:Windows Server 2019的IIS和ASP.NET会话机制默认配置与2003差异较大,启用Cookie时每个瓦片请求会触发会话的验证、序列化/反序列化操作,这部分开销可能未被你的后端日志覆盖
- 针对JS类AJAX请求:上述规则只要匹配瓦片请求的路径,就能覆盖AJAX方式的请求,因为AJAX请求同样会携带Cookie,规则生效后会阻止Cookie的传递
内容的提问来源于stack exchange,提问作者Kevin Edmundson
相关产品推荐
相关产品推荐

