MVC Webサイトでこれが起こっていることは関係ありませんが、とにかく言及すると思います。私は私のImageHandlerクラスを含むフォルダという名前のハンドラを持っているウェブサイトのプロジェクトでカスタムHttpHandlerが起動せず、ASP.NET MVCアプリケーションで404を返します。
<add verb="*" path="*.imu" type="Website.Handlers.ImageHandler, Website, Version=1.0.0.0, Culture=neutral" />
:私のweb.configファイルで
は、私はこれらの行を持っています。それは(私はのprocessRequestコードを削除した)
using System;
using System.Globalization;
using System.IO;
using System.Web;
namespace Website.Handlers
{
public class ImageHandler : IHttpHandler
{
public virtual void ProcessRequest(HttpContext context)
{
//the code here never gets fired
}
public virtual bool IsReusable
{
get { return true; }
}
}
}
私は私のウェブサイトを実行し、それだけで404エラーを返し/something.imuに行く場合は、次のようになります。
私はVisual Studio 2008を使用しており、これをASP.Net開発サーバー上で実行しようとしています。
私は数時間探していて、別の空のWebサイトで作業していました。だから私はそれが既存のウェブサイトの中でうまくいかない理由を理解していない。 * .imuパスbtwへの他の参照はありません。
おっと、正しい方向に私を入れて! 私はこの行をRegisterRoutesメソッドに追加しました。このメソッドはMVCがリクエストを処理するのを止めます:routes.IgnoreRoute( "{resource} .imu/{* pathInfo}"); – Peter
すべてのパスで拡張子を無視する場合は、routes.IgnoreRoute( "{* allimu}"、new {allimu = @ "。* \。imu(/.*)?)}を使用します。フィルハックからhttp://haacked.com/archive/2008/07/14/make-routing-ignore-requests-for-a-file-extension.aspx/ – jsturtevant