내 mvc 4 프로젝트의 루트에 일반 핸들러 (KeepSessionAlive.ashx)를 추가했습니다. 핸들러의 코드는 다음과 같습니다mvc 프로젝트에서 일반 핸들러가 실행되지 않습니다.
내 응용 프로그램을 실행하고 디버깅하는 동안 검사 할 때마다public class KeepSessionAlive : IHttpHandler, IRequiresSessionState
{
public void ProcessRequest(HttpContext context)
{
context.Session["KeepSessionAlive"] = DateTime.Now;
}
public bool IsReusable
{
get
{
return false;
}
}
}
, 나는 Session["KeepSessionAlive"]
이 설정되는 표시되지 않습니다. 핸들러의 ProcessRequest
메서드에서 중단 점을 추가하려고 시도했지만 중단 점이 결코 사이트를 서핑하는 중 적중하지 않습니다. 응용 프로그램에서 처리기를 가져 오려면 다른 작업을 수행해야합니까?
우리는 webforms 프로젝트에서와 같은 작업을 수행 했으므로 거기에서 다른 작업을 수행해야한다는 것을 기억하지 않습니다.
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{resource}.ashx/{*pathInfo}");
//other routes skipped
}
내가 문제였다 경우에 거기에 .ashx
을 추가했지만 핸들러가하지 않는 것 또는 그 선이없는 하나의 방법은 호출 얻을 : 나는 또한 포함 내 경로를 업데이트했습니다.
MVC 작업으로 대체해야합니다. – SLaks
@SLaks 설명해 주시겠습니까? 이 작업은 모든 페이지, 모든 컨트롤러에서 실행해야합니다. 나는 핸들러가 갈 길이라고 생각했다. – Paritosh
당신은 완전히 HttpHandlers를 오해하고 있습니다. ActionFilter로 대체해야합니다. – SLaks