Не могу понять, как перенаправить мой сайт NON-MVC из sitemap.xml на другую страницу .aspx - PullRequest
4 голосов
/ 13 января 2012

При поиске в Google единственными решениями для этого являются веб-сайты MVC. Мой сайт asp.net 4.0 не является MVC. Я хочу, чтобы запросы к sitemap.xml загружали другую динамическую страницу .aspx, чтобы я мог создавать ссылки для Google на лету.

Я часами искал, пожалуйста, если вы знаете, где я могу найти ответ, дайте мне знать.

Я пытался использовать

RouteTable.Routes.Add("SitemapRoute", new Route("sitemap.xml", new PageRouteHandler("~/sitemap.aspx")))

1 Ответ

6 голосов
/ 13 января 2012

Ваш код правильный и должен быть помещен в метод Application_Start в Global.asax.Например:

void Application_Start(object sender, EventArgs e) 
{
    RouteTable.Routes.Add(new Route(
        "sitemap.xml", new PageRouteHandler("~/sitemap.aspx")));
}

Однако вам также необходимо убедиться, что файлы * .xml обрабатываются ASP.NET.По умолчанию * .xml файлы просто обслуживаются IIS, а не обрабатываются ASP.NET.Чтобы убедиться, что они обрабатываются ASP.NET, вы можете:

1) Указать runAllManagedModulesForAllRequests="true" в элементе system.webServer в web.config:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
    </modules>
</system.webServer>

или 2) добавьте «Отображение обработчика» для XML-файлов:

<system.webServer>
    <handlers>
      <add name="xml-file-handler" path="*.xml" type="System.Web.UI.PageHandlerFactory"
           verb="*" />
    </handlers>
  </system.webServer>

Я проверил это в примере проекта ASP.NET (не MVC) и смог заставить работать маршрутизацию, как вы указали.

...