win2003+ISA2004客户端浏览网页发生代码64错误的解决

症状:
ISA服务器安装windows server 2003 和ISA server 2004后,安装和配置过程一切正常,但客户端访问网页时必须多次刷新才能显示,否则将出现代码为64的错误提示。最明显的症状是163邮箱无法登录,如下错误所示:

错误代码 64: 主机不可用
背景: 网关或代理服务器失去连接到 Web 服务器。
或者通过将 ISA Server 2004 用作 Web 代理您访问网站。
在 ISA Server 2004 中启用压缩筛选 Web 筛选器。
Web 站点发送到客户端 HTTP / 0.9 响应。

原因:
最开始以为是操作系统和ISA版本的问题,但重装系统和更新ISA版本结果仍旧一样,后来的ISAcn.org朋友们的帮助下,终于解决了此问题。问题原因在于ISA 2004的http压缩筛选器存在BUG,并且windows 2003 sp2的SNP功能与ISA存在着兼容性问题。

解决方法:
1、按KB944114文章所述,运行如下脚本:
       先将如下脚本存为isa.vbs
 
Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"
Const SE_VPS_NAME = "EnableHotfix944114"
Const SE_VPS_VALUE = true

Sub SetValue()

    ' Create the root object.
    Dim root  ' The FPCLib.FPC root object
    Set root = CreateObject("FPC.Root")

    'Declare the other required objects.
    Dim array       ' An FPCArray object
    Dim VendorSets  ' An FPCVendorParametersSets collection
    Dim VendorSet   ' An FPCVendorParametersSet object

    ' Get references to the array object
    ' and to the network rules collection.
    Set array = root.GetContainingArray
    Set VendorSets = array.VendorParametersSets

    . Error Resume Next
    Set VendorSet = VendorSets.Item( SE_VPS_GUID )

    If Err.Number <> 0 Then
        Err.Clear

        ' Add the item.
        Set VendorSet = VendorSets.Add( SE_VPS_GUID )
        CheckError
        W..Echo "New VendorSet added... " & VendorSet.Name

    Else
        W..Echo "Existing VendorSet found... value- " &  VendorSet.Value(SE_VPS_NAME)
    End If

    if VendorSet.Value(SE_VPS_NAME) <> SE_VPS_VALUE Then

        Err.Clear
        VendorSet.Value(SE_VPS_NAME) = SE_VPS_VALUE

        If Err.Number <> 0 Then
            CheckError
        Else
            VendorSets.Save false, true
            CheckError

            If Err.Number = 0 Then
                W..Echo "Done with " & SE_VPS_NAME & ", saved!"
            End If
        End If
    Else
        W..Echo "Done with " & SE_VPS_NAME & ", no change!"
    End If

End Sub

Sub CheckError()

    If Err.Number <> 0 Then
        W..Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.De.ion
        Err.Clear
    End If

End Sub

SetValue

 
      在命令行下运行 c s c r i p t isa.vbs。

2、按KB945043所述下载KB945043http压缩补丁安装(有 英文版中文版的,必须与所装ISA语言版本对应),重启ISA。

3、更改如下注册表键值:
   HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
   EnablePMTUDiscovery 设置为1
   EnableTCPChimney 设置为0
   EnabledRSS 设置为0

4、重启ISA。

再不行,再打上 KB948496补丁.

替代方法:

禁用Add-in--webfilters-httpfilter,再取消http协议与web proxy filter的绑定。但不建议这样做,因为这样ISA将无法进行HTTP应用层进行过滤,对网络安全造成影响。


本文转自 donhuang 51CTO博客,原文链接:http://blog.51cto.com/donhuang/107602

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值