在文件下载HTTP处理程序中处理404的最佳方法是什么?

时间:2009-03-04 08:32:24

标签: asp.net http-status-code-404 httphandler

我有一个网格,为用户下载文件提供了一些链接。文件存储在应用程序之外,从数据库读取路径引用,并使用HTTP处理程序(* .ashx)为每个请求的文件提供服务。但是,可能存在指向不存在的文件的数据库条目。我抓住FileNotFoundException,但我不确定告知用户丢失文件的最佳方法是什么(以便他们可以联系支持)。

首先想法是在响应上设置标准的404代码,这就是我现在正在做的事情。

更有用的方法是显示关于丢失文件的通知(jQuery),但文件下载不是在AJAX中完成的,因此这将涉及两个步骤 - 客户端onclick处理程序调用Web服务方法检查文件是否存在,如果不存在,则取消单击(返回false)并向用户显示友好消息。但是,如果文件存在,我继续正常执行。但这增加了另一个服务器调用。

您是否处理过类似的问题?你是怎么解决的?

一些说明 - 应用程序是在ASP.NET 2.0中构建的,并使用jQuery来调用Web服务方法。

1 个答案:

答案 0 :(得分:1)

Pawel,看来你已经回答了你的问题......

  

...(以便他们可以联系   支持)...

通过陈述上述内容,我建议您创建一个自定义404页面,通知用户磁盘上不存在的文件,并向他们提供有关如何与支持办公室联系的信息。

我已经创建了一个用于处理文件的HTTP处理程序,如果磁盘上不存在文件,则返回404响应。如果已经抛出了404响应,我已经设置了IIS来显示自定义页面..(我对错误500也是如此)。

希望这有助于找到符合您需求的解决方案并获得好运!

相关问题