로컬로 .NET 3.5에 UrlRewriter.NET이 설치되어 있고 제대로 작동하는 웹 프로젝트가 있습니다..NET 4.0이 작동하지 않는 UrlRewriter.NET
그때 .NET 4.0로 업그레이드 이것이 내가 다시 작성 내 서버에 URL을이 .NET 4.0 프로젝트를 이동 작동을 중지하면 Visual Studio 2010에서 Visual Studio 2010을
에 내 로컬 PC에서 작업을 계속했다.
여기 (여기에 읽기 쉽도록 응축) 내 Web.config의 서버에 넣을 때
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter"/>
</configSections>
<system.web>
</system.web>
<rewriter>
<rewrite url="~/Neat-Url" to="~/Ugly-Url.aspx?id=1"/>
</rewriter>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true">
<add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule"/>
</modules>
</system.webServer>
</configuration>
는 그냥 404
흥미로운 발견을 반환합니다./Neat-Url이라는 디렉토리를 만들면 URL 다시 쓰기가 다시 시작되어 /Ugly-Url.aspx?id=1로 리디렉션됩니다.
참고 : 예. .NET 4.0은 자체 URL 재 작성이 있고 또한 UrlRewriter와 작동하는 기존 코드가 있습니다.
서버 구성 문제이거나이를 해결할 수있는 방법이 있습니까?
[업데이트] : 확인되었으므로 다른 것을 결정했습니다. 파일이나 디렉토리가 실제로 존재하지 않는 한 URL 재 작성기는 작동하지 않습니다.
예를 들면./Directory1을 /Directory1.aspx로 리디렉션하려면/Directory1이 있어야하며 모든 것이 잘 작동합니다.
/File1.aspx를 /File2.aspx로 리디렉션하려는 경우이 방법도 사용할 수 있지만 File1.aspx는 파일 시스템에 있어야합니다.
그렇지 않으면 계속해서 404가 발생합니다. .NET을 통해 해결할 수있는 것으로 보이며 File1.aspx를 호출 할 때 web.config와 관련이 있으며 런타임에 전달되고 asp.net 404가 발생합니다. 디렉토리 호출 단지 웹 호스트를 얻을 수 (404)
[업데이트 2] : 그때, 내 웹 설정에서
<httpModules>
부분을 제거 다음 또한 validateI 변경
<identity impersonate="false"/>
추가 ntegratedModeConfiguration = "true"입니다. 여전히 동일한 문제가 있지만 적어도 통합 모드에서 유효합니다.
[업데이트 3] : 지금 ManagedFusion은 아직 오류가 발생하고 있지만 서버 지원이 아닌 내 구성 오류와 비슷합니다. 나는 다른 질문을 제기했다 ManagedFusion Url Rewriting not working.
잘하면 내 문제를 해결할 것입니다.
Stackflow에서 10 분 안에 답변을 얻지 못했던 질문입니다. 나는 곤경에 처해야한다 :) –
왜 마이크로 소프트가 제공 한 내장형 rewriter를 사용하지 않는가? – leppie
본인은이 질문의 임의 투표 마감 및 반대 투표에 동의하지 않습니다. 예, 그것은 5 살이지만 문제는 여전히 오래된 기술에만 있습니다. 이 질문에 대한 오프 토픽 플래그는 재현 될 수 있기 때문에 유효하지 않은 것으로 보이며 간단한 인쇄 오류로 인한 것이 아닙니다. downvote도 완전히 정당화되지 않은 것 같습니다. –