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

相關問題