我有一个基于 ASP.NET 的 API,需要在发生 http 错误时从服务器向客户端发送错误代码。我不希望向用户发送包含堆栈跟踪的完整详细常规错误消息,一条简单的“发生错误”消息就可以了。
IIS 的默认行为是始终向非本地客户端发送 http 500。我已经能够发送详细的错误消息(带有错误代码);但是是否可以以某种方式禁用详细信息?
如果没有,是否可以添加一个自定义错误文件用于所有错误,并仍然将特定的错误代码发送给客户端?
答案1
实际上,我自己的一个 MVC 应用程序遇到了相反的情况。我得到的是自定义错误页面,而不是完整错误。您的应用程序应在 App_Start 中包含一个 FilterConfig.cs 文件。该文件应显示如下:
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
}
当 customErrors 处于打开状态时,它应该显示 Error.cshtml 共享视图 (~/Views/Shared/Error.cshtml),您可以自定义它以根据需要显示尽可能多的或尽可能少的有关错误的信息。
高血压