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

Я сделал ссылку для выхода с помощью гиперссылки asp.net с NavigateUrl = "Default.aspx? Logout = 1". В 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. Ничего не работает.

РЕДАКТИРОВАТЬ: Моя ошибка, проблема НЕ в событии ЗАГРУЗКИ. При запуске из 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
@ Аристос Не знаю.   -  person Dov Miller    schedule 06.05.2013
comment
Думаю, есть 2 случая. Во-первых, файловая система чувствительна к регистру, файл default.aspx, и вы называете его Default.aspx, а во втором случае - попытка сделать второе перенаправление с незащищенных на защищенные страницы (https ‹-› http) и установлен неправильно.   -  person Aristos    schedule 06.05.2013