Resonse.Redirect работи от VisualStudio, но не и от IIS

Направих връзка за излизане с asp.net HyperLink, с NavigateUrl="Default.aspx?Logout=1". В Default PageLoad проверявам дали низът на заявката е нулев, ако не сесията се прекратява и потребителят се пренасочва към същата страница, без низът на заявката, действаща като страница за вход.

Кодът в Default PageLoad е:

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

Когато се изпълнява от VisualStudio, работи добре, но когато се изпълнява от IIS, получавам грешката Ресурсът не може да бъде намерен. Описание: HTTP 404. Ресурсът, който търсите (или една от неговите зависимости), може да е премахнат, името му да е променено или временно да е недостъпен. Моля, прегледайте следния URL адрес и се уверете, че е изписан правилно. Искан URL: /Default.aspx.

Същата страница е началната страница на програмата и когато се извика при отваряне, няма проблем. При отстраняване на грешки видях, че зареждането на страницата е активирано и if е въведено, така че проблемът е в URL адреса на Response.Redirect. Опитах се да премахна ~/ или само ~ или да направя ../ или /ProgramName//Default.aspx. Нищо не работи.

РЕДАКТИРАНЕ: Моя грешка, проблемът НЕ е в събитието LOAD. Когато работи от IIS, програмата НЕ се връща към сървъра, проблемът е с HyperLink NavigateUrl. Опитите да го промените не помагат. Някаква идея?


person Dov Miller    schedule 06.05.2013    source източник
comment
Пускате ли вашия сайт на unix?   -  person Aristos    schedule 06.05.2013
comment
Какво се случва, ако замените реда с: Response.Redirect(Request.Url.GetLeftPart(UriPartial.Path), true);?   -  person Alex Filipovici    schedule 06.05.2013
comment
@Aristos Не, доколкото знам.   -  person Dov Miller    schedule 06.05.2013
comment
Има 2 случая според мен. Първо, файловата система е чувствителна към главни и малки букви и файлът е default.aspx и вие го наричате като Default.aspx, а във втория случай се опитвате да направите второ пренасочване от незащитени към защитени страници (https‹-›http) и не е инсталиран правилно.   -  person Aristos    schedule 06.05.2013