代码之家  ›  专栏  ›  技术社区  ›  O. R. Mapper

我怎么做ASP.NET对于未知路线,返回404而不是500?

  •  0
  • O. R. Mapper  · 技术社区  · 4 年前

    path="*." path="*" <add name="ExtensionlessUrlHandler-Integrated-4.0" ... 我的路线 Web.config 归档以便解决 another problem

    我不能改变 path 回到 "*." ,尽管确实如此 suggested as a solution in another question ,因为这会带来 the other problem -在零件中最后一个斜杠后带有点的管线将不再被找到。

    就像在那个链接里 other question ,我正在使用OData。然而,我根本不知道在我的情况下,它应该在路径解决中发挥任何作用,因为我 认为 我们将它视为一个普通的库,它在我们的C项目中被引用,并由我们的一些webapi端点调用。

    <modules runAllManagedModulesForAllRequests="true"/> 已经在我的 文件。

    “扩展ful”路由(即最后一个斜杠后的最后一部分包含一个点的路由)是否被接受?

    ModuleName=“ManagedPipelineHandler”,Notification=“执行”请求“处理程序”,HttpStatus=“500”,HttpReason=“内部服务器错误”,HttpSubStatus=“0”,ErrorCode=“Rekursion zu tief,Stapelberlauf。 (0x800703e9)”,配置异常信息=“”

    在英语中,错误消息的意思是:

    因此,它似乎与 another question 然而,从那里得到的答案对我的情况没有帮助:

    两个答案都涉及 <handlers> 我的部分 Web.config文件 文件,当前如下所示:

    <handlers>
        <remove name="ExtensionlessUrlHandler-Integrated-4.0"/>
        <remove name="OPTIONSVerbHandler"/>
        <remove name="TRACEVerbHandler"/>
        <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*" verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/>
    </handlers>
    
    0 回复  |  直到 4 年前