ASP.NET 网络应用 returns 以“.sitemap”结尾的 URL 为 404

ASP.NET web app returns 404 for URLs ending with ".sitemap"

我们的 Web 服务提供 API 类似于:"/api/<customer-provided name>?parameter="

如果客户使用任何以“.sitemap”结尾的值,此 API returns 404 不会命中我们的代码。我们的代码库中没有任何东西可以为这个特定的后缀做任何特殊的事情。

我们的假设是它可能与 ASP.NET 站点地图安全修整有关:https://docs.microsoft.com/en-us/previous-versions/aspnet/ms178428(v=vs.100)

知道如何禁用它(即允许客户使用以“.sitemap”结尾的值)吗?

结果是默认 ASP.NET 行为阻止 URL 结尾,代表一些众所周知的文件扩展名(.sitemap.cs 等等)。

添加以下 fileExtensions 部分修复了它:

<security>
  <requestFiltering>
    <fileExtensions allowUnlisted="true">
      <clear />
    </fileExtensions>
  </requestFiltering>
</security>