자원을 처리하기 위해 처리기를 작성 중이며 구현 된 IHttpHandler 클래스가 네임 스페이스 아래에 작성되면 문제가 발생합니다.Ashx 처리기의 processrequest 함수가 호출되지 않았습니다.
의 Web.config 시나리오를 작동하지 않는 코드
을 찾아주세요 :
<add name="ResourceHandler" type="PublicSite.Classes.Handlers.ResourceEndpoint, PublicSite" path="Resource.ashx" verb="*" />
속성 : PublicSite.Classes.Handlers.ResourceEndpoint.IsReusable=False
문제 : 생성자가 충돌하고이 ProcessRequest가 호출되지 않습니다 . 클래스의 오브젝트를 구축합니다. 즉, constructor가 히트하지만, processrequest가 불려 가기 전에 404에 의해 실패합니다.
작업 시나리오
의 Web.config :
<add name="ResourceHandler" type="ResourceEndpoint,PublicSite" path="Resource.ashx" verb="*" />
등급 : PublicSite.Classes.Handlers.ResourceEndpoint.IsReusable=True
생성자 공격하고 processRequest라는 호출하기 전에 (404)에 의해 실패
.
처리기를 요청할 때 두 번째로 곧바로 생성 된 개체를 사용하므로 construcotr이 호출되지 않고 ProcessRequest가 직접 호출됩니다. 그런데 두 번째 호출에서 핸들러가 작동합니다.
재사용 할 수있는 속성이 필요 없습니다. 문제를 찾을 수있는 사람이 있습니까? 감사.
실제 .ashx 파일을 사용하고 있습니까? 웹 구성에 등록하고 있습니까? –
핸들러가 네임 스페이스에 있더라도 네임 스페이스가없는 클래스 만 구성 라인에 필요로 할 수 있습니다. –
어떤 버전의 IIS를 사용하고 있습니까? 6 이하에서는 아래에서 핸들러를 등록해야하지만 7 이상에서는 web.config의 섹션에 있습니다. –
sh1rts