2012-05-10 4 views
0

Я использую IIS 5.1 на сервере 2000. Я установил страницу asp.net для пользовательской ошибки в IIS, которая направляет C: \ Inetpub \ wwwroot \ Custom_Error \ IIS_Error.aspx.рендеринг элементов управления asp.net на IIS

Пользовательская страница ошибки появляется, когда пользователь вводит неверный пароль в 3 раза.

Когда я обращаюсь непосредственно к странице ошибок (для тестирования) с моего ноутбука, используя следующий URL-адрес, я могу видеть текст страницы и текстовое поле.

//192.168.0.10/Custom_Error/IIS_Error.aspx

Но когда пользователь keyin неправильный пароль 3 раза, система показывает страницу ошибки только с текстом и не показывает элементы управления ASP.NET.

Кроме того, есть ли способ показать локальный путь, с которого пользователь был перенаправлен на страницу пользовательских ошибок? Например; у нас есть 10 папок под веб-сайтом TestWeb, поэтому, когда пользователь обращается к номеру папки (3), названному webtest3, а пользовательская страница ошибки должна показывать webtest3 на странице.

Могу ли я сделать это на asp.net или на классической странице asp?

+0

Основываясь на IP-адресе, ссылка, которую вы поделили, является локальной для вашего компьютера, если вы добавляете ее для демонстрации того, что вы видите, вы должны прикрепить изображение/сообщение к снимку экрана. – StuperUser

+0

IP-адрес должен показать, где находится файл не для демонстрации. – user1263981

+0

Вы задали два вопроса. В будущем, пожалуйста, попросите отдельно. Кроме того, это может помочь, если вы разместите здесь некоторые образцы кода. Я ответил на ваш второй вопрос ниже, но ваш первый вопрос об элементах управления asp.net трудно ответить, не видя, как выглядит код. –

ответ

0

Вы задали два вопроса. Я отвечу на ваш второй вопрос: «Как получить локальный путь, на который пользователь был перенаправлен с пользовательской страницы ошибок?»

Это зависит от того, как вы направляете пользователя на страницу с ошибкой. Если направить пользователя на страницу ошибки при обработке исключений в неперехваченные global.asax, вы можете написать что-то вроде этого:

protected void Application_Error(object sender, EventArgs e) 
{ 
    string url = System.Web.HttpContext.Current.Request.Url.ToString(); 
    Exception ex = Context.Server.GetLastError(); 
    // do something with url and exception data 
} 

Если вы вручную перенаправлять пользователя на страницу ошибки, скажем с Response.Redirect, там это несколько способов сделать это.

Обычно веб-браузеры отправляют на веб-сервер адрес страницы, с которой они только что пришли, но некоторые пользователи (и некоторые брандмауэры) отключат эту функцию. Когда данные доступны, вы можете получить его, вызвав Request.ServerVariables["HTTP_REFERER"];.

Однако, если вы хотите, чтобы убедиться, что вы получите данные, следует сохранить URL страницы, на которой произошла ошибка как раз перед перенаправлением пользователя на страницу ошибки, как это:

if (error_condition) 
{ 
    Session["error_url"] = System.Web.HttpContext.Current.Request.Url.ToString(); 
    Response.Redirect(error_page); 
} 
+0

Привет, я пытаюсь сделать в asp classic, поскольку страница asp.net не отображает элементы управления сервером. Я пробовал эту команду <% response.write (Request.ServerVariables («PATH_INFO»))%> но он ничего не делает. даже простая команда response.write ничего не пишет. – user1263981

+0

Вы указали asp.net как вопросный тег. В любом случае мы можем лучше предоставить помощь, если вы предоставите некоторый пример кода. –

0

Я установил эта проблема, создавая простую страницу html для пользовательских ошибок и перенаправляя ее на страницу asp.net.

Ошибка страницы пользовательской ошибки Asp.net не работает должным образом для IIS. Вместо этого лучше иметь html-страницу.

Смежные вопросы