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에 문제가있는 것입니다. 변경 시도는 도움이되지 않습니다. 어떤 생각?
유닉스에서 사이트를 실행합니까? – Aristos
라인을 다음과 같이 바꾸면 어떻게됩니까 :'Response.Redirect (Request.Url.GetLeftPart (UriPartial.Path), true);'? –
@Aristos 내가 아는게 아니야. –