如何区分IIS的状态代码和Web API应用程序的状态代码

如何区分IIS的状态代码和Web API应用程序的状态代码,iis,asp.net-web-api,apm,Iis,Asp.net Web Api,Apm,将以下端点作为基于其id返回用户信息的服务 /getUser?id=1234 客户端或监视器工具如何区分id=1234的用户与请求不存在页面的用户 所有状态代码都存在同样的问题,例如500我的基础架构团队告诉我,您报告的信息有误导性,因为他们无法区分来自我的服务的500和来自服务器本身的500。这是一个非常好的问题 大多数教程都会很高兴地告诉您返回NotFound,即404。我猜这些人从来都不需要构建和支持生产级API 你需要有一些惯例并坚持下去。我宁愿返回204而不是404。204表示呼叫成

将以下端点作为基于其id返回用户信息的服务

/getUser?id=1234
客户端或监视器工具如何区分id=1234的用户与请求不存在页面的用户


所有状态代码都存在同样的问题,例如500我的基础架构团队告诉我,您报告的信息有误导性,因为他们无法区分来自我的服务的500和来自服务器本身的500。这是一个非常好的问题

大多数教程都会很高兴地告诉您返回NotFound,即404。我猜这些人从来都不需要构建和支持生产级API

你需要有一些惯例并坚持下去。我宁愿返回204而不是404。204表示呼叫成功,但没有内容。这样,您将在数据不存在和端点不存在之间有一个明显的区别


至于500,您的API永远不会返回500,除非服务器端发生了非常糟糕且无法恢复的情况。我建议不要高兴地为每件事抛出例外。如果你的业务规则不满足,那就没有理由放弃任何东西。如果你的API不能访问你的数据库,那就需要一个500来说明发生了什么糟糕的事情。至于你报道的500个问题,我不同意。IIS有自己的日志,您的服务将有自己的日志,因此是的,您的基础架构团队可以区分

这是一个很好的问题

大多数教程都会很高兴地告诉您返回NotFound,即404。我猜这些人从来都不需要构建和支持生产级API

你需要有一些惯例并坚持下去。我宁愿返回204而不是404。204表示呼叫成功,但没有内容。这样,您将在数据不存在和端点不存在之间有一个明显的区别


至于500,您的API永远不会返回500,除非服务器端发生了非常糟糕且无法恢复的情况。我建议不要高兴地为每件事抛出例外。如果你的业务规则不满足,那就没有理由放弃任何东西。如果你的API不能访问你的数据库,那就需要一个500来说明发生了什么糟糕的事情。至于你报道的500个问题,我不同意。IIS有自己的日志,您的服务将有自己的日志,因此是的,您的基础架构团队可以区分

除了IIS本身从不返回500.0这一事实之外,这个答案涵盖了基础架构团队在分析IIS日志文件(条目中包含子状态)时应该能够区分的大部分内容,但是通过网络,每个人都只看到状态代码500(主体有所不同)。除了IIS本身从不返回500.0这一事实之外,这个答案涵盖了基础架构团队在分析IIS日志文件(条目中包含子状态)时应该能够区分的大部分内容,但通过连线,每个人都只能看到状态代码500(主体有所不同)。