ASP.NET IIS7 Динамическая страница 404 - PullRequest
0 голосов
/ 23 января 2011

Я ищу решение для динамической страницы 404.

У меня есть страница Page404.aspx, которая запрашивает параметр WebsiteID в строке запроса при загрузке.

Допустим, каждыйВеб-сайт имеет другой 404-страничный HTML-файл, хранящийся в БД, и при каждой загрузке страницы он будет отображать правильный HTML-код по идентификатору веб-сайта в QueryString.

Теперь хитрая вещь - как перенаправить клиента на правильную страницу 404, с CURRENT WebsiteID?

Надеюсь, я был достаточно ясен.Заранее спасибо,

Гал.

1 Ответ

0 голосов
/ 23 января 2011

Если у вас нет Global.asax, создайте его для своего веб-сайта.Это предполагает, что ваши сайты разделены по каталогам.

В новом файле Global.asax должно быть

protected void Application_Error(Object sender, EventArgs e)
{
   HttpContext ctx = HttpContext.Current;

   Exception exception = ctx.Server.GetLastError ();

if (ex.GetType() == typeof(HttpException))
{
   HttpException httpEx = (HttpException)ex;
   if(httpEx.GetHttpCode() == 404) 
   {

     int websiteID = FindWebsiteID(ctx.Request.Url.ToString());

     string errorPage = string.Format("~/404Page.aspx?={0}",websiteID);

     Response.Redirect(errorPage);
  }
}

public int FindWebsiteID(string url){

//parse the url for the directory and look up the id
//for the website via the directory name

}

, вы также можете просмотреть эту статью дополнительная информация.

...