2010-03-22 2 views
3

URL 라우팅을 사용하는 .NET 3.5 Web Forms 기반 웹 사이트를 개발 중입니다. 지금까지 나는 몇 개의 길을 만들었고 아무런 문제도 없었다. 이제 누군가가 링크를 클릭 할 때 SQL Server의 테이블에서 웹 사이트로 .pdf 파일을 보내는 것을 처리 할 .ashx 파일이 생겼습니다. 나는 처리기를 만들 때 일반적으로 그 결과는 다음과 같습니다.ashx 파일이있는 Web Forms에 URL 라우팅 사용

return BuildManager.CreateInstanceFromVirtualPath("~/ViewItem.aspx", typeof(Page)) as Page; 

를 해봤 내 .ASHX 파일의 경우 :

return BuildManager.CreateInstanceFromVirtualPath("~/FileServer.ashx", typeof(Page)) as Page; 

이 그래도 작동하지 않습니다 fileserver.ashx 그렇게 주조 페이지 없기 때문에 typeof (Page)로) 페이지가 실패 할 것입니다. 페이지 대신 VirtualPath를 캐스팅해야합니까, 아니면 내가이 작업을 수행해야하는 다른 방법이 있습니까?

답변

4

사용 typeof(IHttpHandler) 대신 ASHX 파일의 기본 클래스는 또한을 IHttpHandler로 페이지 등의 반환 형식을 변경입니다 typeof(Page)

. 그런 다음 페이지가되는 다른 코드를 업데이트하십시오.

1

HTTP 처리기이므로 IHttpHandler 인터페이스 유형을 사용하여 전송할 수 있습니다. 그러나 당신은 페이지를 사용할 수 없습니다. 처리기가 상속하는 유형을 사용해야합니다.

+0

귀하의 답변이 모두 유사하고 효과가있었습니다. 감사! –