Как добавить маршрут к динамическому robots.txt в ASP.NET MVC?

У меня есть robots.txt, который не является статичным, но генерируется динамически. Моя проблема заключается в создании маршрута от root / robots.txt до моего действия контроллера.

этоработает:

routes.MapRoute(
name: "Robots",
url: "robots",
defaults: new { controller = "Home", action = "Robots" });

этоБезразлично»т работа:

routes.MapRoute(
name: "Robots",
 url: "robots.txt", /* this is the only thing I've changed */
defaults: new { controller = "Home", action = "Robots" });

".текст" вызывает ASP к Barf очевидно

Ответы на вопрос(2)

URL с расширением не обрабатывается маршрутизацией, В основном, когда жерех видит "." он вызывает статический обработчик файлов, поэтому динамический маршрут никогда не используется. Файлы web.config необходимо изменить, чтобы /robots.txt не был перехвачен обработчиком статических файлов.

чтобы разрешить выполнение маршрута с расширением файла.

<!--?xml version="1.0" encoding="utf-8"?-->
<configuration>
  <!-- ...Omitted -->
  <system.webserver>
    <!-- ...Omitted -->
    <handlers>
      <!-- ...Omitted -->
      <add name="RobotsText" path="robots.txt" verb="GET" type="System.Web.Handlers.TransferRequestHandler" precondition="integratedMode,runtimeVersionv4.0">
    </add></handlers>
  </system.webserver>
</configuration>

Смотрите мой блог наДинамическое создание Robots.txt с использованием ASP.NET MVC Больше подробностей.

Ваш ответ на вопрос