2009-03-04 111 views
1

我有一個網格,它提供了一些用戶下載文件的鏈接。文件存儲在應用程序之外,從數據庫中讀取路徑引用,並使用HTTP處理程序(* .ashx)爲每個請求的文件提供服務。但是,可能會有數據庫條目指向不存在的文件。我找到FileNotFoundException,但我不確定什麼是最好的方法來通知用戶丟失的文件(以便他們可以聯繫支持)。在文件下載HTTP處理程序中處理404的最佳方法?

第一個想法是在響應上設置一個標準的404代碼,這就是我現在所做的。

更有用的方法是顯示關於缺少文件的通知(jQuery),但文件下載不是在AJAX中完成的,因此這涉及到兩個步驟 - 客戶端onclick處理程序調用Web服務方法檢查文件是否存在,如果不存在,則取消點擊(返回false)並向用戶顯示友好的消息。如果文件存在,然後我繼續正常執行。但是這又增加了另一個服務器調用。

你有沒有處理過類似的問題?你是如何解決它的?

一些說明 - 應用程序構建在ASP.NET 2.0中,並使用jQuery調用Web服務方法。

回答

1

帕維爾,看來你已經回答了你的已經問題...

...(這樣他們可以聯繫 支持)...

通過聲明以上我會建議您創建一個自定義404頁面,通知用戶該文件不存在於磁盤上,並向他們提供有關如何與支持辦公室聯繫的信息。

我已經創建了用於處理文件的HTTP處理程序,如果文件不存在於磁盤上,則返回404響應。我已經設置IIS來顯示一個自定義頁面,如果一個404響應已被拋出..(和我做同樣的錯誤500)。

希望這可以幫助您,找到符合您需求的解決方案,祝您好運!

+0

但是,我不能區分缺少的文件情況和整個頁面丟失時。我可以在404頁面上提供一些更詳細的解釋,例如「如果您嘗試下載文件聯繫人支持,如果您嘗試訪問無法找到的頁面」等)。 – 2009-03-04 11:57:40