ASP.Net MVC 3 Маршрутизация с вложенными виртуальными каталогами, ошибка 403 - PullRequest
1 голос
/ 13 марта 2012

Наша текущая хостинговая компания не допускает записи заголовка узла для нескольких доменов в разные виртуальные каталоги в рамках одного основного домена, поэтому у нас есть некоторый код в EventHandler Global.asax Begin_Request.Пока это работает отлично!

    protected void Application_BeginRequest(object sender, EventArgs e)
    {
        Dictionary<string, string> domains = new Dictionary<string, string>() { { "otherdomain.com", "~/Other/Default.aspx" }, { "seconddomain.com", "~/SECOND/" } };

        string requestedDomain = Request.ServerVariables["SERVER_NAME"].ToLower();

        foreach (var domain in domains.Keys)
        {
            if (requestedDomain.Contains(domain))
                Response.Redirect(domains[domain]);
        }
    }

Эти работы:
www.primarydomain.com - не совпадает и падает до ~ / Default.aspx
www.otherdomain.com - совпадения иидет в ~ / Other / Default.aspx (каталог ~ / Other / также является виртуальным каталогом, и мы используем ASP.Net).

Это не так:
www.seconddomain.com - www.seconddomainname.com/second/ FAILS !!!
Каталог «~ / SECOND /» также является виртуальным каталогом, однако мы используем ASP.Net MVC 3 с маршрутизацией, получаем ошибку «HTTP 403».«что означает, что нам нужно разрешить права доступа к файлу, каталог« ВТОРОЙ »настроен как виртуальный веб-каталог.

РЕДАКТИРОВАТЬ: добавлен маршрут

routes.MapRoute(
            "Default", // Route name
            "/SECOND/{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

Мы пропустили что-то очень простое, возможно, или нет, есть ли общее решение для этого типа хостинга, маршрутизации и конфигурации ASP.Net?

1 Ответ

0 голосов
/ 13 марта 2012

Я не сталкивался с подобной проблемой, но вы пробовали вместо этого Server.Transfer?Я не уверен, пытаетесь ли вы выполнить запросы по этому маршруту, и если да, опубликованные переменные будут потеряны с помощью response.redirect, и вы не сможете отобразить правильное действие на контроллере, который принимает определенное количествопараметры.

...