2009-10-12 8 views
2

내 프로젝트에 제네릭 처리기 (ashx)를 추가했지만 web.config에 등록 된 것을 볼 수없고 작동합니다. 어째서? 비주얼 스튜디오가 web.config의 http 핸들러로 추가해서는 안될까요? 또는 미리 정의 된 핸들러를 대체하지 않기 때문에 그 핸들을 특별히 호출하고 있습니다.Web.Config의 일반 핸들러 등록

답변

6

일반적으로 Asp.net의 제네릭 처리기는 Asp.net 프로세스가 필요없는 일부 축소판 그림을 만드는 것처럼 작은 작업을 지원하기 위해 설계되었습니다. 따라서 "www.somesite.com/Thumbnail.ashx?filename=abc.jpg"와 같은 간단한 asp.net 페이지를 호출하는 것처럼 호출 할 수 있습니다.

그런데이 URL을 다음 URL과 같은 URL로 매핑하려는 경우.

  • www.somesite.com/Thumbnail/abc.jpg
  • www.somesite.com/Thumbnail/dog.jpg
  • www.somesite.com/Thumbnail/cat.jpg

매핑을 위해 웹 양식 라우팅 (System.Routing 기반)과 같은 URL 라우팅을 사용해야합니다. 따라서 위의 예제처럼 다음 코드를 사용할 수 있습니다.

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.Map("Thumbnail", "Thumbnail/{filename}").To("~/Thumbnail.ashx"); 
} 

웹 양식 매핑에 대한 자세한 내용은 Phil Haack이 Using Routing With Web Forms을 참조하십시오.

그러나 JavaScript 처리기와 같은 응용 프로그램의 파일 형식을 지정하는 일부 처리기를 처리 할 수있는 HTTP 처리기를 만들어야하는 경우. IHttpHandler에서 상속받은 클래스를 만들어야합니다. 그런 다음이 핸들러에서 처리하는 파일 유형을 지정하기 위해 web.config 파일에 등록해야합니다. HTTP Handlers and HTTP Modules in ASP.NET Mansoor Ahmed Siddiqui By

PS로 보시기 바랍니다. web.config 파일에 등록하기 위해 제네릭 처리기를 사용하는 경우 SomeHandler.ashx 및 SomeHandler.ashx.cs 인 두 개의 파일을 만들어야합니다. 그것은 아주 간단한 파일 핸들러를 만드는 것을 복잡하게 만든다. 반면에 동일한 작업을 수행하기 위해 IHttpHandler 클래스에서 상속 한 하나의 cs 파일 만 만들 수 있습니다.

+0

감사합니다. 이제 의미가 있습니다. – Tarik

+0

좋은 explaination 1 + ..... –

1

처리기는 탐색 할 수있는 또 다른 형식의 파일입니다. HTTP 모듈은 web.config에 등록되어야하지만 반드시 핸들러는 아닙니다.

+0

그러나 전체 프로젝트에 대해 asp.net 기본 httphandlers를 덮어 쓰려면 web.config에 등록해야합니다. – Tarik

+0

나는 당신이 무엇을 묻고 있는지 확실하지 않다. 내장 된 핸들러와 같은 이름을 가진 핸들러를 추가하고 있는가? – Jonas

+0

또는 와일드 카드 경로에 매핑하기위한 처리기를 추가하고 있습니까? IE, * .foo에 대한 모든 요청은 처리기로 전달되어야합니까? – Jonas

1

난 당신이 사이트에 HTTP 처리기

HTTP 모듈 대신 HTTP 모듈 차단 모든 HTTP 요청을 생각 될 수 있으며 선택적으로 HTTP 파이프 라인에서 일부 작업을 수행 할 수 있습니다 또는 생각 전화를 완전히 차단하십시오. 모듈은 web.config에 등록되어야합니다

HTTPHandler은 조금 더 가볍고 수행하는 모든 페이지 이벤트를 처리하지 않는다는 점을 제외하면 ASPX 페이지와 거의 동일하게 작동합니다 이미지 처리기와 같은 것을 필요로하지 않습니다.

+0

멋진 답변 주셔서 감사합니다.하지만 사실 httpttodler와 Httphandler를 혼동하지 않았습니다. 나는 왜 내가 httphandler를 등록하는지 묻고 있었다. – Tarik

관련 문제