2012-01-23 75 views
0

我公司擁有經過客戶配置模型兩個測試服務器,IIS 6關閉連接 - 如何保持連接?

  • 一個與Windows Server 2003 SP2,IIS 6和Tomcat 5.5,
  • 一個與Windows Server 2008 R2,IIS 7和Tomcat 6

這兩個IIS都配置爲使用Windows身份驗證併爲Tomcat提供ISAPI篩選器。

對於IIS 6計算機,服務器通過發送標題「Connection:close」關閉每個經過身份驗證的http連接。使用IIS 7計算機時,服務器使用持久連接,併發送頭「Persistent-Auth:true」。具有IIS 6的客戶與我們的測試服務器具有相同的連接關閉行爲,這會由於NTLM身份驗證而使網絡往返數量增加三倍。

爲什麼IIS 6服務器關閉連接,以及如何使其使用持久連接?

我對這兩個服務器都有RDP管理訪問權限,並且會很樂意提供任何有用的信息並進行實驗。

UPDATE:

我發現問題部分地由ISAPI濾波器(isapi_redirect.dll)的過時版本引起的。將該過濾器更新到1.2.32後,我不再爲html頁面獲取「Connection:close」標題。但是,當客戶端小應用程序訪問返回序列化Java對象的服務時,我仍然可以得到它。

回答

1

我發現問題與認證無關。 Tomcat servlet使用chunked transfer encoding作爲響應,並且ISAPI篩選器未配置爲處理它,這似乎強制IIS 6關閉連接。 IIS 7似乎收集響應塊,並將整個響應(un-chunked)發送給調用者。

在升級到版本1.2.32並使用ISAPI篩選器的enable_chunked_encoding屬性啓用分塊編碼後,如reference guide中所述,連接不再關閉。