由於您的建議,此問題已得到解決。查看底部的細節。非常感謝您的幫助!ASP.NET應用程序通過防火牆展現出奇怪的行爲
我們的ASP.NET網站是從幾個特定和高度安全的國際位置訪問的。它運行良好,但我們增加了另一個顯示非常奇怪行爲的客戶位置。
特別是,當用戶輸入搜索條件並單擊搜索按鈕時,結果列表將返回空白。它甚至不顯示'0 results returned'文本,所以就好像Repeater控件完全沒有綁定。類似的行爲出現在網站的其他部分,但不是全部。用戶可以正常登錄該網站並顯示其個人資料信息。
我已經使用與他們完全相同的憑據在本地登錄到該站點,並且該站點從此處運行良好。我們仔細地經歷了這些步驟,因此我確信它不是用戶問題。
第一次加載搜索結果頁面時,我將搜索結果綁定在搜索結果頁的Page_Load中(條件在查詢字符串中)。即
if (!IsPostBack) {
BindResults();
}
我可以準確地局部地通過註釋掉BindResults()方法調用複製相同的行爲。
有人知道IsPostBack的價值是如何計算的嗎?是否有可能他們高度安全的防火牆設置會導致IsPostBack始終返回true,即使它是來自其他頁面的重定向?這可能是一個紅鯡魚,因爲問題可能在其他地方。它確實複製了結果。
我無法訪問該網站,因此故障排除僅限於向他們提供說明並要求他們告訴我結果。
謝謝你的時間!
附加信息:客戶端位於運行默認規則的Microsoft ISA 2006防火牆後面。該網站已添加到Internet Explorer受信任網站列表中,並在FireFox和Google Chrome中嘗試使用,結果均相同。
解決方案:我的贏家是建議使用提琴手。沒有Web開發人員應該沒有什麼優秀的工具。使用這個,我能夠從請求中剝離各種頭文件,直到我再現問題。實際上有兩個因素導致了這個錯誤,這種混淆的問題通常就是這種情況。
第一因素 - 在可能的情況下,Web應用程序使用GZIP壓縮,並受到所有主流瀏覽器的支持。防火牆剝離了指定GZIP解壓縮支持的頭(Accept-Encoding:gzip,deflate)。
第二因素 - 我的代碼中的一個錯誤意味着某些處理在未壓縮內容發送時被繞過。之前沒有注意到這個問題,因爲該應用程序僅供有限的受衆使用,所有這些都支持GZIP解壓縮。
感謝您的建議。我試過使用JavaScript關閉的網站,它工作正常(至少該網站的部分是)。他們還將域添加到他們的Internet Explorer可信站點列表中,並嘗試使用Firefox和Chrome,所以應該啓用Javascript。 – Andrew 2008-12-02 03:53:11