【发布时间】:2018-04-26 18:47:59
【问题描述】:
问题
最近,我在生产环境中部署了一个包含 javascript 的页面,该页面使用 setInterval() 每隔几秒 ping 一次 Web 服务。行为可以总结如下:
每隔 X 秒,即将到来的Events.aspx 页面上的 Javascript 调用 hitWebService() 函数,该函数位于 hitWebService.js 文件中。
X 间隔值集被证明太小,因此,我删除了对 hitWebService()、hitWebService.js 文件本身以及它试图访问的 Web 服务的所有引用。
尝试从普通 IP 地址访问 Web 服务的次数下降了,但我仍然收到许多使用代理服务的用户的尝试。
我的理论是我的即将到来的Events.aspx 和 hitWebService.js 已被代理服务缓存。实际上,当我在用户点击错误页面时记录引荐来源字符串时(这些用户中的一个经常会被重定向到这里),他们是从即将到来的Events.aspx 引荐的。
问题在于,访问此 Web 服务的尝试正在以令人不快的速度填满 IIS 日志,并在服务器上造成不必要的流量。
我的尝试
- 完全移除网络服务
- 删除 hitWebService.js 文件,也将其替换为虚拟文件
- 更改了 IIS 上的内容过期时间,以便内容立即过期
- 将 Response.Cache.SetCacheability(HttpCacheability.NoCache) 添加到页面上的 .vb 代码隐藏
- 完全重新发布的网站并进行了更改
- 重新启动 IIS,停止并启动 IIS。
有趣的部分
- 我可以更改 UpcomingEvents.apsx 上的 vb 代码隐藏以记录会话详细信息等,对于代理服务用户来说,它似乎几乎可以立即更新
问题
如果我的理论是正确的,并且代理服务器确实缓存了这些文件 hitWebService.js 和即将到来的Events.aspx,考虑到上述策略还没有,我是否可以通过其他途径强制刷新代码工作了吗?
非常感谢,
【问题讨论】:
标签: javascript asp.net caching iis proxy