質問

これは少し注意が必要です。この点について、いくつかのヒントをいただければ幸いです。
ここで私がやりたいことは:

  • ユーザーがアクセスしようとしました myapp.com/data/123456.mp3

  • test.mp3は存在しません

  • システムはユーザーを myapp.com/data/error.apsx?file=123456.mp3

大規模なシステムがmp3ファイルを処理する方法を処理するためにこれが必要です。

ユーザーがmyapp.com/otherFolder/notHere.whateverにアクセスしようとすると、システムは標準の404エラーを通常どおり返します。

IISでそれを指定する方法があることは知っていますが、プログラムで、または.netプロジェクトを使用して何かできることがあれば、それが大好きです。

編集:

myapp.com/data/にweb.configファイルを作成しました

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

これは機能していないようです。

役に立ちましたか?

解決

カスタムエラー http://aspnetresources.com/articles/CustomErrorPages.aspx

web.configで。

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

他のヒント

最初に行う必要があるのは、デフォルトで.mp3はASP.NET拡張子ではなく、IISによって処理されるだけなので、ASP.NETがこれらのファイル要求を処理できるようにすることです。

実際にこれを処理したら、いくつかの方法が思い浮かびます。

1つ目は、OnUnhandledExceptionイベントを監視するHttpModuleを作成することです。 ASP.NETはHttpExceptionタイプの例外として404(およびすべてのHTTPエラー)をスローするため、モジュールは、キャッチ、リクエストの解析、および独自のエンドへのリダイレクトを行う場所を提供します。

もう1つの方法は、関心のあるフォルダーレベルでweb.configを作成し(これらは入れ子にすることができます)、そこにcustomerrorセクションを作成します。これはより簡単ですが、制御がはるかに少なくなります。私は一般的にモジュールを支持すると考えられているすべてのもの。

おそらく、特定のエラーを配置するフォルダーにweb.configを指定し、そのwebconfigに、示されたページを含むcustomerrorタグを配置できます。 または、メインのweb.config内でlocationタグを使用できます

しかし、これについてはわかりません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top