gpt4 book ai didi

asp.net - 在同一项目中使用Web API 2和Forms应用程序进行错误处理-如何设置以同时处理两者?

转载 作者:行者123 更新时间:2023-12-03 08:51:35 24 4
gpt4 key购买 nike

我有一个项目,其中包含 Web API 2 服务,以及 aspx形式。但是我正在尝试设置错误处理,因此,如果用户尝试在URL中放入假页面,我可以将其发送到404错误页面。当然,Web API还需要将400状态消息发送回调用Web服务的用户,因此我试图将两者的功能保持在适当的位置。主要问题是我不确定如何最好地设置web.config,因为它无法正常工作。在我的项目中,我同时具有error.aspx和error404.aspx页面。

在web.config文件中:

<customErrors mode="RemoteOnly" defaultRedirect="~/error.aspx" redirectMode="ResponseRewrite">
<error statusCode="404" redirect="~/error404.aspx"/>
</customErrors>

<!-- setting existingResponse="PassThrough" needed, otherwise web api 400 error messages will not return -->
<httpErrors existingResponse="PassThrough" errorMode="Custom">
<remove statusCode="404" subStatusCode="-1"/>
<error statusCode="404" prefixLanguageFilePath="" path="/myApp/error404.aspx" responseMode="ExecuteURL"/>
</httpErrors>

当我放入假页面时,我的应用程序将返回类似以下的内容: http://myServer/myApp/fake.aspx

“/myApp”应用程序中的服务器错误。
运行时错误
说明:处理您的请求时发生异常。此外,在执行第一个异常的自定义错误页面时发生了另一个异常。该请求已被终止。

但是,如果我在web.config中进行更改,则可以显示404页面: <httpErrors existingResponse="Replace"但是,进行此更改会导致在我从以下位置发送类似以下内容时显示Web API 400状态代码消息 而不是
我的 Controller 的get函数:Return BadRequest(“Your parameter is invalid”),但是这些状态消息对于服务的使用者非常重要。

有什么想法可以设置项目,以便同时显示两个错误吗? Setting <httpErrors existingResponse="Auto"允许发回Web API错误,但不允许发回错误表单请求的error404.aspx。

我想知道的一件事是,Global.asax文件是否可以像 here所示那样提供帮助,或者是否可以进行这样的处理?

最佳答案

实际上,不应在web.config文件中设置任何错误页面。

我遵循了本文中概述的技术:Custom error pages for non-existant directory/file Web API (not controllers)

关于asp.net - 在同一项目中使用Web API 2和Forms应用程序进行错误处理-如何设置以同时处理两者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39832541/

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