По устаревшим причинам у нас есть URL с '.page' в них, например, так:
/ controller.page / действие
Мы переписали приложение, поэтому URL больше не в этом формате, и нам нужно 301 перенаправить их, что должно произойти в коде. Новое приложение представляет собой MVC 3 & .net 4 и размещено на IIS 7.
Проблема в том, что IIS видит .page в URL, затем ищет обработчик для этого расширения, не находит его, а затем возвращает 404.0 и не передает запрос слишком .net, где мы можем затем выполнить перенаправление .
Есть идеи, как решить эту проблему?
Я попытался добавить этот обработчик в web.config:
<add name="LegacyMVC" path="*.page" verb="*"
type="System.Web.Mvc.MvcHttpHandler" preCondition="integratedMode" />
Но я получаю эту ошибку:
System.NotSupportedException: Specified method is not supported.
at System.Web.Routing.StopRoutingHandler.GetHttpHandler(RequestContext requestContext)
at System.Web.Routing.UrlRoutingHandler.ProcessRequest(HttpContextBase httpContext)
at System.Web.Mvc.MvcHttpHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)