2012-09-24 4 views
3

3.5에서 업그레이드 된 ASP.NET 4.0 웹 응용 프로그램이 있습니다. 불행히도 사용자가 http://xxx.abc.com/을 통해 URL에 액세스하려고하면 /login.aspx?ReturnUrl=%2f가 표시됩니다.IIS 7 ASP.NET 4.0 기본 문서 무시

이 문제는 .NET 4.0 및 IIS7에서의 문제인 것으로 알고 있습니다. 로드 밸런서가 302 상태 코드를 반환하므로 문제가 발생합니다. 부하 분산 장치가 http 200 상태 코드를 찾도록 구성된 몇 가지 이유가 있습니다.

사용자가 http://xxx.abc.com/을 클릭하면 리디렉션없이 login.aspx가 표시되도록 ASP.NET 4.0 동작을 수정할 수있는 방법이 있습니까?

나는 아래이 시도했지만 작동하지 않았다 :

<system.webServer> 
    <defaultDocument> 
     <files> 
     <add value="Login.aspx" /> 
     </files> 
    </defaultDocument> 
</system.webServer> 

감사합니다.

답변

3

.NET 4/IIS 7의 동작이 아니라 폼 인증 동작입니다. 기본 문서 모듈이 기회를 갖기 전에 인증 모듈이 먼저 실행되고 리디렉션을 트리거하는 것으로 보입니다. 저는 여기에 해결 방법으로 제안 무엇 다음 location 태그를 사용하여 웹 사이트의 루트에

  • 세트 <allow users="?" />.
  • 위의 방법을 사용할 수 없거나 실용적이지 않은 경우 기본 문서 대신 URL Rewrite module을 사용하십시오. 내가 login.aspx를 얻기 위해이 재 작성 규칙을 사용

는 200 상태 코드로 루트 URL에서 반환

<rewrite> 
    <rules> 
    <rule name="RewriteURL1" stopProcessing="true"> 
     <match url="" /> 
     <conditions> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
     </conditions> 
     <action type="Rewrite" url="login.aspx" /> 
    </rule> 
    </rules> 
</rewrite> 
+1

사용 <매치 URL = "^ $"/> 빈 URL과 일치하는 (예를 들어 도메인 만 URL) –