Tôi không biết liệu nó có liên quan đến điều này đang xảy ra trên trang web MVC hay không nhưng tôi vẫn đề cập đến nó.Tùy chỉnh HttpHandler không kích hoạt, trả lại 404 trong Ứng dụng ASP.NET MVC
Trong web.config của tôi, tôi có những dòng này:
<add verb="*" path="*.imu" type="Website.Handlers.ImageHandler, Website, Version=1.0.0.0, Culture=neutral" />
trong dự án website Tôi có một thư mục có tên Handlers chứa lớp ImageHandler tôi. Có vẻ như thế này (tôi đã xóa mã 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; }
}
}
}
Nếu tôi chạy trang web của mình và truy cập /something.imu, nó chỉ trả về lỗi 404.
Tôi đang sử dụng Visual Studio 2008 và cố gắng chạy trên máy chủ phát triển ASP.Net.
Tôi đã tìm kiếm vài giờ và làm việc trong một trang web trống riêng biệt. Vì vậy, tôi không hiểu tại sao nó sẽ không hoạt động bên trong một trang web hiện có. Không có tham chiếu nào khác tới đường dẫn * .imu btw.
Whoa đẹp, mà đưa tôi đi đúng hướng! Tôi đã thêm dòng này trong phương thức RegisterRoutes sẽ dừng MVC xử lý yêu cầu: routes.IgnoreRoute ("{resource} .imu/{* pathInfo}"); – Peter
nếu bạn muốn bỏ qua phần mở rộng trong tất cả các đường dẫn, hãy sử dụng route.IgnoreRoute ("{* allimu}", new {allimu = @ ". * \. Imu (/.*)?"}); từ haill phill http://haacked.com/archive/2008/07/14/make-routing-ignore-requests-for-a-file-extension.aspx/ – jsturtevant