localhost/foo/bar
과 같이 확장 할 수없는 URL을 요청할 때 실행해야하는 HttpHandler가있는 프로젝트가 있습니다. 이 올바르게 로컬 Visual Studio 개발 서버에서 <system.webServer><handlers>
대신 <system.web>
<httpHandlers>
사용하여 작업 있지만이 기능은 IIS 7.5 (표준 404 오류 : http://i.imgur.com/YuNjT.jpg) 배포 할 때 작동하지 않습니다. 이 문제는 확장되지 않는 URL로 제한되지 않으며 (마지막에 확장을 추가 할 수 있으며 문제가 남아 있습니다)하지만이 시나리오에서는 확장 기능이없는 URL을 사용하는 것이 좋습니다. 확장 성없는 URL로 인해 일부 문제가 발생할 수 있다는 정보를 봤습니다. AppPool은 통합으로 설정됩니다. 나는 aspnet_regiis.exe -i를 했어. HTTP 리디렉션 기능이 IIS 서버에 설치되어 있습니다.IIS 7.5의 무제한 URL에 대한 ASP MVC 처리기가 작동하지 않습니다.
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true" />
<handlers>
<add name="FileDownloadHandler" path="/Home/Files/*" verb="*" type="MvcApplication1.FileDownloadHandler" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode" />
</handlers>
<directoryBrowse enabled="true" />
</system.webServer>
그리고 여기 내 라우팅 설정은 다음과 같습니다 :
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("home/files/{*pathInfo}");
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
내가 코드를 추측하고있어 괜찮지 만 뭔가 내 IIS 구성으로 꺼져 여기 내 핸들러 설정이 있습니다. 누군가 올바른 방향으로 나를 안내 할 수 있습니까? 나는 지금 수일 동안 인터넷 검색을했고 나를 도운 해결책을 찾지 못했습니다. 다음은 샘플 프로젝트입니다 (내 IIS에 dev에 서버 VS 지역에서 작동하지만) : http://localhost/MvcApplication1/Home/Files/foobar
: 빌드 (및 해당 지역의 IIS에 배포) 할 때 http://mapman.pl/MvcApplication1.zip
위의 솔루션은이 같은 URL을 요청하려고 사전에 감사합니다, 당신의 Web.config에서 Bartek