IIS压缩导致的Ajax问题

  最近在自己的电脑上测试发现,以前在各种环境下都运行正常的两款软件(asp.net开发的B/S结构软件),出现了莫名其妙的脚本错误,错误发生在通过右键菜单在系统中添加目录或用户的时候,估计是收到Ajax响应并进行处理时发生了问题。通过借助Httpwatch等工具调试发现,进行Ajax处理的服务器端页面运行正常,但客户端收到的Ajax响应内容却与服务端发送的内容不符,具体现象是响应字符串xmlHttp.responseText在客户端被截断了后面的一部分。

  首先想到的是浏览器的兼容性问题、Ajax请求和响应的编码问题,但后来都逐一排除了。以关键字“xmlHttp.responseText 被截断”进行搜索,发现有不少人都遇到过这种现象,但都没有找到答案,无果而终,费了几个小时时间也没有任何进展。

  下班后清醒了一下头脑,终于怀疑到了IIS方面,最先被怀疑的就是IIS压缩(这次没有走弯路了),打开IIS管理界面,取消默认网站的IIS压缩选项,但调试时又出现了配置错误,原来这种IIS设置的修改,它是以web.config文件的形式保存在网站根目录下的。删除这个文件后,直接到IIS的顶级设置中取消相关的压缩选项,再打开页面测试,发现问题已经没有了,一切正常。

  看来,是IIS的压缩功能导致了输出的响应内容被截断了,至于为什么会出现这种问题,还没有去研究,希望有识之士补充一二。

  如果需要再现问题现象,可到https://landian.cc下载“蓝点通用管理系统”这款软件来安装,并进入用户管理界面进行添加用户操作。

 

  附测试环境:Windows 7操作系统(IIS 7.5),IE 8.0浏览器,Asp.net 1.1程序运行环境,使用原始的XMLHttpRequest 对象方式来进行Ajax处理。

 

posted @   戒焦戒躁  阅读(486)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
中小企业信息管理的超值之选:蓝点通用管理系统!
中小企业通用管理软件推荐
自己动手,三分钟入门定制你的企业管理软件!
轻松搭建随需应变的企业管理平台!
点击右上角即可分享
微信分享提示