Вопрос

Я, вероятно, упускаю из виду кое-что действительно простое здесь, но я пытаюсь перенаправить все плохие URL-адреса на действие, которое фильтрует URL-адрес по условиям, а затем либо 301 перенаправляет на подходящую страницу, либо выдает страницу 404.

Для этого у меня есть такой маршрут в конце таблицы маршрутов:

routes.MapRoute("Error", "{*url}", new { controller = "Main", action = "Error" }); 

И подобное действие:

public ActionResult Error(string url)
{
        if (/* Conditions are met... */)
        {
            Response.Status = "301 Moved Permanently";
            Response.AddHeader("Location", /* Destination URL */);
            Response.End();
        }

        Response.StatusCode = 404;
        return View(/* 404 page... */));
}

Это прекрасно работает локально.

Однако при развертывании в IIS6 URL-адреса, которые не включают .mvc (например, oldfile.php), никогда не отправляются процессу ASP.NET для маршрутизации.

Есть ли простое решение / я что-то пропускаю?

РЕДАКТИРОВАТЬ: Это связано с этим вопросом , однако в IIS6 URL-адреса без .mvc не отправляются для обработки ASP.NET MVC.

Это было полезно?

Решение

Скорее всего, при развертывании на сервере ASP.Net не вызывается.

Я бы настроил отображение подстановочных знаков в IIS, чтобы ваши запросы использовали ASP.Net для обслуживания запросов.

Откройте диспетчер IIS, щелкните правой кнопкой мыши свое приложение, перейдите в «Свойства», перейдите на вкладку «Домашний каталог» и нажмите «Конфигурация». В разделе «Сопоставления приложений с подстановочными знаками» нажмите «Вставить» (не «Добавить», что немного запутанно), а затем введите C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_isapi.dll для & # 8220; Исполняемый файл & # 8221; и снимите флажок Убедитесь, что файл существует.

Для получения дополнительной информации посетите источник, который помог мне с этой проблемой, по адресу: http://blog.codeville.net/2008/07/04/options-for-deploying-aspnet-mvc-to-iis-6/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top