2012-02-03 3 views
0

IIS6을 Windows Server 2003 (x86)에서 실행하고 사용자 지정 처리기 (404 오류 처리기 아님)를 작성했습니다.IIS 6 ASP.NET 처리기 404 오류

브라우저에서 열어 처리기에 액세스하려고하면 http://localhost/Priority1.Sync/Transfer.p1s 오류 404 (404 로그 파일)가 표시됩니다. 웹 애플리케이션 작업의 다른 페이지 (예 : http://localhost/priority1.sync/syncservice.asmx

처리기는 IIS7 개발 컴퓨터에서 정상적으로 작동합니다.

<httpHandlers> 
      <remove verb="*" path="*.asmx"/> 
      <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
      <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
      <add verb="GET,HEAD" path="ScriptResource.axd" validate="false" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
      <add verb="*" path="*.p1s" type="MCS.Priority1.Sync.WebServices.TransferHandler, SyncService" /> 
</httpHandlers> 

나는 "* .p1s"(기본 웹 사이트> 속성> 홈 디렉토리> 구성> 매핑> 추가)에 대한 응용 프로그램 확장을 설정 한 다음과 같이

의 web.config는 설정입니다.

다른 것이 있습니까?

덕분에, 앤디

답변

5

사용자 지정 처리기 IIS 구성에서 "파일 존재 확인"옵션을 선택했는지 여부를 확인하십시오.

IIS6은 실제 파일이 기본적으로 존재할 것으로 예상합니다. 하나도 없으면 요청을 처리기로 전달하지 않습니다. 이 체크를 비활성화해야하므로 예상대로 처리기로 요청을 보냅니다.

+1

감사합니다. 1, 감사합니다. 특히, [기본 웹 사이트> 속성> 홈 디렉토리> 구성> 매핑> 추가]에 갔을 때 "파일 존재 확인"확인란의 선택을 취소해야합니다. –

1

IIS6 및 IIS7는 근본적으로 다른 짐승이다. IIS7의 관리 파이프 라인은 모든 요청이 등록 된 처리기에 도달 함을 의미합니다. IIS6에서는 ASPNET_ISAPI.DLL (일반적으로 * .aspx 및 * .ashx 및 기타 기본 ASP.NET 확장)에 매핑 된 항목 만 처리됩니다.

이 프로젝트의 개발 응용 프로그램 풀에 "클래식"파이프 라인을 사용하면 IIS7 개발 상자를 이러한 방식으로 작동시킬 수 있습니다.

또 다른 트릭은 404 페이지 오류를 ASP.NET 페이지에 매핑 한 다음 적어도 처리기에 넣을 수 있다는 것입니다.

모든 정직함에서 저는 IIS7로 생산을 업그레이드하는 것을 보았습니다. 당신은 IIS 6 핸들러를 등록하는 경우

1

는 그들이 IIS7 사용하는 Web.config를하지 <system.webServer> 섹션의 <system.web> 섹션의 <httpHandlers> 요소에 배치해야 기억 않습니다.