1

这有点棘手,如果你们能给我一些关于这一点的指示,我会很高兴。
这是我想做的事:如何为使用ASP.NET的文件夹设置特定的404?

  • 用户试图访问 myapp.com/data/123456.mp3

  • 请将test.mp3不存在

  • 系统发送用户 myapp.com/data/error.apsx?file=123456.mp3

我需要这个以拉手T-他的方式一个大系统应该为mp3文件提供服务。

如果用户试图访问myapp.com/otherFolder/notHere.whatever,系统通常会返回标准的404错误。

我知道有一些方法可以在IIS中指定,但是如果有些事情我可以通过编程的方式或仅仅使用我的.net项目,我就会喜欢它。

编辑:

我创建了一个myapp.com/data/

<?xml version="1.0"?> 
<configuration> 
    <system.web> 
     <customErrors mode="RemoteOnly" defaultRedirect="/data/mp3/full/serveMp3.aspx"/> 
    </system.web> 
</configuration> 

这是一个web.config文件似乎并不奏效。

+0

关于接受的答案:看看评论 – marcgg

回答

2

自定义错误 http://aspnetresources.com/articles/CustomErrorPages.aspx

在你的web.config。

<customErrors 
     mode="RemoteOnly" 
     defaultRedirect="~/errors/GeneralError.aspx" 
/> 
+1

它可以处理所有文件或只是aspx文件? – marcgg

+0

找不到所有文件.. generalerror.aspx是显示页面。 – madcolor

+0

此外,这将适用于整个应用程序,而不仅仅是一个文件夹。我希望能够指定应该应用的文件夹 – marcgg

0

或许你可以把一个web.config要放在特定错误的文件夹和球铁QT500把在webconfig与网页进行customerror标签标明 或者您可以使用位置标记的主要网络内的.config

,但我不知道这

2

你必须做的第一件事就是确保获得ASP.NET默认情况下,MP3播放,因为处理这些文件的请求不是一个ASP.NET扩展这只会由IIS处理。

一旦你处理它,实际上做到这一点的方法有多大。

第一个是创建一个监视OnUnhandledException事件的HttpModule。由于ASP.NET将404(和所有HTTP错误)作为HttpException类型异常抛出,因此该模块将为您提供一个位置来捕捉,解析请求并重定向到您自己的目的。

另一种方法是在您关心的文件夹级别创建web.config(这些可以嵌套记住)并在那里创建customerror部分。这更直接,但提供更少的控制。所有考虑的事情我都会倾向于模块。

+0

我不需要控制,因为它100%确定此操作只会在此文件夹中,并且只会执行这一操作。所以我想我需要使用网络配置。我编辑了我的问题qith我做了什么 – marcgg

相关问题