gpt4 book ai didi

asp.net-mvc-4 - 路由未处理带有扩展名的 url

转载 作者:行者123 更新时间:2023-12-02 20:01:06 25 4
gpt4 key购买 nike

我一直遵循建议from this article用于在 asp.net mvc3 中设置 robots.txt 文件以使用 Controller 处理服务器响应,而 IIS 8.0 Express 返回文件未找到错误,而不是 asp.net 错误。

在这些情况下,如何让 IIS 不查找文件? web.config 中有我需要的东西吗?

最佳答案

IIS 试图在这里变得智能。他拦截了 url 中的点,并认为这是一个静态文件,并尝试使用默认的 StaticFile 为其提供服务。处理程序。它不会让事件到达托管的 ASP.NET 应用程序。

第一种可能性是在 web.config 中添加以下内容

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

但实际上我不建议您这样做,因为这可能会对应用程序的性能产生负面影响,因为现在对静态文件(例如 .js、.css、图像等)的所有请求都会被处理通过托管管道。

推荐的方法是将以下处理程序添加到您的 web.config 中( <handlers> <system.webServer> 的标签):

<system.webServer>
<handlers>
<add name="Robots-ISAPI-Integrated-4.0" path="/robots.txt" verb="GET" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
...
</handlers>
</system.webServer>

请注意我们如何指定此处理程序仅适用于特定的 URL 和 HTTP 谓词。

现在,当您获取/robots.txt时,IIS 将不再使用 StaticFile 处理它处理程序,但会将其传递给托管管道 ASP.NET。然后会被路由引擎拦截并路由到相应的 Controller Action 。

关于asp.net-mvc-4 - 路由未处理带有扩展名的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14084024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com