ISA server2006 URL中文 报500错误

我在运维一个10几年前的老项目,有一个问题,一直困扰着我的客户。很久都没有解决。

表现就是在用中文搜索表单时,会看到如下的错误:
ISA server2006 URL中文 报500错误_第1张图片

后来经过我的测试发现,只要是GET请求中传参包含中文时就必然出现这个报错。

探索过程

看到这个界面,最开始我误以为是IIS的报错信息。我就各种在网上搜索关键字类似与URL中文 报500错误 ,很显然没能解决这个错误。

我把IIS的根编码格式相关的参数都修改了个遍就是解决不了。

然后这个事情就搁置了近一年时间,期间如果客户很在意这个报错,我就会修改后台代码,避免在GET方法中使用中文。或者把中文转成其他格式传输。虽然可以解决问题,但是工作量巨大。

直到近期,我给客户部署我亲自开发的项目,发现GET请求中包含中文时还是报这个错。这个时候我在想会不会不是IIS的原因。因为我的项目使用的是nginx。

直到在配置域名的时候,发现我的项目,无法正常登录。我有文章如下:
《ISA Server2006部署RuoYi无法登录的问题》https://blog.csdn.net/lxyoucan/article/details/135722244
记录了这个过程。

此时我才发现,客户用的反向代理软件竟然是ISA Server2006这是我第1次听说这个软件。

此时我才意识到,之前的项目访问时URL中带有中文报错的情况,不是因为IIS,而是因为ISA Server2006导致。

之前花了大量时间探索,竟然方向完全错误了。
得到原本原因以后就好解决了。

解决办法

  1. 打开 ISA控制台。
  2. 点击 “防火墙策略”
  3. 找到自己的网站并鼠标右击,选择配置HTTP
    ISA server2006 URL中文 报500错误_第2张图片
  4. 在弹出的为规则配置HTTP策略 对话框,点击常规选项卡,在URL保护中,把验证正则化阻止高位字符这两项前面的复选框去掉。然后点击确定。
    ISA server2006 URL中文 报500错误_第3张图片
  5. 点击应用,后问题解决。
    ISA server2006 URL中文 报500错误_第4张图片

总结

真是坑啊,ISA的默认配置竟然有如此大的坑。不过毕竟是10多年前的软件了,也不能要求太高。反正在当前的视角看,这个默认配置验证正则化阻止高位字符因引起中文用户困扰。其实英文用户应该是不会有影响的。
总体来说ISA更像是一个防火墙软件,安全性第一的原则来看,又好理解了。

困扰我近1年的问题,总算解决了。

参考

https://blog.51cto.com/liunn/230980

你可能感兴趣的:(运维,windows,ISA,server)