2013-05-06 3 views
0

NavigateUrl = "Default.aspx? Logout = 1"인 asp.net HyperLink를 사용하여 로그 아웃 링크를 만들었습니다. Default PageLoad에서 쿼리 문자열이 null인지 아닌지 확인합니다. 세션이 종료되고 사용자가 쿼리 문자열없이 로그인 페이지로 작동하여 동일한 페이지로 리디렉션됩니다. 그것이 잘 작동으로 VisualStudio에서 실행되면Resonse.Redirect는 VisualStudio에서 작동하지만 IIS에서는 작동하지 않습니다.

 if (Request.QueryString["Logout"] != null) 
     { 
      FormsAuthentication.SignOut(); 
      Session.Clear(); 
      Session.Abandon(); 
      Response.Redirect("~/Default.aspx", true); 
     } 

하지만이 IIS에서 실행될 때 나는 리소스를 찾을 수없는 오류가 발생합니다 : 기본 PageLoad에

코드입니다. 설명 : HTTP 404. 찾고있는 리소스 (또는 해당 종속성 중 하나)가 제거되었거나 이름이 변경되었거나 일시적으로 사용할 수없는 리소스 일 수 있습니다. 다음 URL을 검토하고 철자가 올바른지 확인하십시오. 요청 된 URL : /Default.aspx.

같은 페이지가 프로그램의 시작 페이지이며, 열 때 호출해도 아무런 문제가 없습니다. 디버깅에서 페이지로드가 활성화되고 if가 입력되어 Response.Redirect URL에 문제가 있음을 확인했습니다. 나는 ~을 벗으려고했는데/또는 단지 ~/또는 /ProgramName//Default.aspx를했다. 아무것도 작동하지 않습니다.

편집 : 내 실수로, 문제는로드 이벤트가 아닙니다. IIS에서 실행할 때 프로그램이 서버로 돌아 가지 않으면 HyperLink NavigateUrl에 문제가있는 것입니다. 변경 시도는 도움이되지 않습니다. 어떤 생각?

+1

유닉스에서 사이트를 실행합니까? – Aristos

+0

라인을 다음과 같이 바꾸면 어떻게됩니까 :'Response.Redirect (Request.Url.GetLeftPart (UriPartial.Path), true);'? –

+0

@Aristos 내가 아는게 아니야. –

답변

0
if (Request.QueryString["Logout"] != null) 
     { 
      FormsAuthentication.SignOut(); 
      Session.Clear(); 
      Session.Abandon(); 
      Response.Redirect("~/Default.aspx", false); 
     }