【发布时间】:2011-01-02 15:12:12
【问题描述】:
我想在满足特定条件时从 RESTful WCF Web 服务返回自定义 HTTP 状态代码。
我不想使用标准的 HTTP 状态码;相反,我想返回一个 514 状态码,这对调用用户来说意味着什么。
WebOperationContext.Current.OutgoingResponse 可以做到这一点吗?
【问题讨论】:
我想在满足特定条件时从 RESTful WCF Web 服务返回自定义 HTTP 状态代码。
我不想使用标准的 HTTP 状态码;相反,我想返回一个 514 状态码,这对调用用户来说意味着什么。
WebOperationContext.Current.OutgoingResponse 可以做到这一点吗?
【问题讨论】:
OutgoingResponse.StatusCode 是您设置状态代码的位置,但它是 HttpStatusCode 枚举,而不是整数值。
您可以将自定义值 int 强制转换为 HttpStatusCode,但我不确定框架会如何处理它;很可能它会抛出,但尝试一下也无妨。
虽然 HTTP 规范不允许自定义响应代码,但除非必须,否则走这条路可能不是一个好主意。也许自定义响应标头会更好?
如果您必须使用自定义状态码路由,另一种选择可能是使用 ASP.NET 兼容模式。这将允许您使用 HttpContext.Current.Response.StatusCode,它是一个 int。但是,您必须托管在 IIS 中才能正常工作,而且我不知道您的体系结构。
【讨论】: