1

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

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

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

你有没有处理过类似的问题?你是怎么解决的?

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

4

1 回答 1

1

帕维尔,你似乎已经回答了你的问题......

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

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

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

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

于 2009-03-04T11:35:38.973 回答