2008年10月11日 星期六

透過 ISA 2006 存取部份網站會出現"無法顯示網頁"訊息

 前幾天財務部某同仁因工作需要,要上某個網站查詢,公司連外需透過 Proxy,結果出現”無法顯示網頁”的錯誤訊息,但不透過 Proxy 又正常可以存取,因為研判應該是 ISA 2006 的問題。



 經請示 Google 大神,有人說跟 ISA 的增益集有關,於是測試發現果然與”壓縮篩選器”有關,而又在微軟知識庫中,找到 KB944114 與我的問題雷同,雖然這個 KB 是適用於 ISA 2004,但經實際測試發現套用在 ISA 2006 上也沒問題。


 根據 KB944114 的說明在下列情況中會收到錯誤訊息。
  • 您存取 ISA 2004 中發佈的網站,或是使用 ISA 2004 做為 Web Proxy 存取網站。
  • 在 ISA 2004 中啟用了壓縮篩選器。
  • 將 HTTP / 0.9 回應給用戶端傳送的網站。
 錯誤訊息:  1. HTTP / 1.1 502 Proxy 錯誤 ( 指定網路名稱已不再是可用) 
  2. 錯誤碼 64 :主機無法使用
   背景:閘道或 Proxy 伺服器失去與網頁伺服器的連線。


 解決方法一:
  1. 將下列程式碼複製並貼到「記事本」
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

    On 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
        WScript.Echo "New VendorSet added... " & VendorSet.Name

    Else
        WScript.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
                WScript.Echo "Done with " & SE_VPS_NAME & ", saved!"
            End If
        End If
    Else
        WScript.Echo "Done with " & SE_VPS_NAME & ", no change!"
    End If

End Sub

Sub CheckError()

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

End Sub

SetValue
 2. 儲存為 EnableHotfix944114.vbs

 3. 在命令提示字元中,執行下列指令。
  cscript EnableHotfix944114.vbs

注意:如果要還原預設設定,將 Const SE_VPS_VALUE 值由 true 改為 false,然後再執行它即可。


 解決方法二:  停用增益集中的”壓縮篩選器”。

沒有留言:

張貼留言