asp.net-mvc – 如何在ASP.NET MVC中添加路由到动态robots.txt?

我有一个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" });

“.txt”显然导致ASP到barf

解决方法

您需要将以下内容添加到web.config文件中,以允许执行具有文件扩展名的路由.
<?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" />
    </handlers>
  </system.webServer>
</configuration>

有关详细信息,请参阅我在Dynamically Generating Robots.txt Using ASP.NET MVC上发表的博文.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....