2010-04-05 4 views

답변

1

실제로 URL Rewriter을 디자인 할 때이 동일한 문제를 해결해야했습니다. URL에 액세스하기 전에 발생하는 프로세스와 관련이 있습니다. 이 문제를 해결하려면 IIS 7에서 기본 페이지 처리가 해제되어 있는지 확인해야합니다. 기본 페이지 처리가 없으면 드라이브에 매핑하려고하는 추가 단계를 거치지 않으므로 요청 된 정확한 URL이됩니다. 그러나 이것은 System.Web.Routing을 사용하는지 여부에 따라 옵션이 될 수도 있고 아닐 수도 있습니다.

  1. 이동 오른쪽 상단에
  2. 이동을 클릭
  3. 기본 문서 에 IIS에서 사이트 :

    는 다음을 수행 할 필요가 처리 기본 페이지를 끄려면 모서리.

또는 당신은 당신의 web.config에 다음을 추가 할 수 있습니다

<system.webServer> 
    <!-- ... other tags here ... --> 
    <defaultDocument enabled="false" /> 
</system.webServer> 

이 기본 문서가 더 이상 URL에 추가됩니다하지 않는다 후. 그러나 이 더 이상 활성화되어 있지 않으므로 디렉토리에 실제로 매핑되는 default.aspx에 의존 할 수 없다는 것을 수동으로 처리하거나이 기능을 처리하기 위해 System.Web.Routing과 같은 것을 사용해야합니다.

다음은 IIS 6.

  1. 열기 IIS를 적용하고 웹 사이트를 마우스 오른쪽 단추로 클릭하고 '속성'을 선택합니다

    는 와일드 카드를 켤 필요가 IIS 6에서 동일한 작업을 수행하려면 .
  2. 새로운 와일드 카드 매핑 파일 위치를 aspnet_isapi.dll로 할 수있는 실행 텍스트 상자를 설정
  3. 을 만들기 위해 '삽입 ...'버튼을 클릭하여 응용 프로그램 설정 섹션
  4. 아래에있는 '설정'버튼을 클릭합니다. for .net 2.0, 3.0, 3.5 : C : \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_isapi.dll
  5. '파일 존재 확인'확인란이 선택 취소되어 있는지 확인하십시오.
  6. '확인'을 눌러 확인하고 모든 창을 닫습니다.

참고 : 그런데 모든 소스는 내가 일을 한 방법이 궁금했다 까봐 내가 위의 링크 된 사이트에서 사용할 수 있습니다.

+0

나는 이것을 조사 할 것이다! 당신의 프로젝트를 알지 못했습니다. 리플렉터를 사용하여 ASP.NET 내부를 깊이 관통하고 URL ASP.NET이 (IIS7WorkerRequest 내부에서) IIS의 네이티브 부분에 의해 이미 수정되었음을 확인했습니다.apphost에서 많은 기본 모듈을 사용하지 않을 것입니다. 난 그냥 기본 문서 처리를 비활성화하려고하지만 그것은 cassini 웹 서버에서 아무것도 변경됩니다. 나중에 IIS에서 시도합니다. btw IIS + ASP.NET은 기본 동작의 거대한 괴물입니다. 무서운. – usr

+0

추신 : asp.net 양식을 어떻게 지원하는지 궁금합니다. 코드를 살펴볼 것입니다. – usr

+0

카시니는 표준 ''설정 만 따르므로 카시니에서는 아무 것도 바꿀 수 없습니다. 그러나 카시니는 보통 순수 .NET 엔진이기 때문에 IIS 7에서 볼 수있는 것을 잘 판단하고 있습니다. 그러나'default.aspx'와'index.aspx'를 위해 여전히 하드 코딩을하고 있습니다. Visual Studio에서 이전 ASP.NET 응용 프로그램을 실행할 때 그냥 작동합니다 (tm). 그러나 디렉토리에서 파일을 제거하는 경우'default.aspx'를 사용하지 않고 URL을 인식하도록 강제 할 수 있습니다. –

관련 문제