WCF 服务.如何返回 HTTP 500 响应
本文关键字:HTTP 响应 返回 服务 何返回 WCF | 更新日期: 2023-09-27 18:30:15
>我有一个WCF服务,它访问注册表并返回值。我想在某些情况下返回 HTTP 500 响应,例如当我从注册表返回空值而没有任何异常时。这是我的代码。我想返回 HTTP 500 响应,而不是返回"null"字符串。
private string baseKey = "SOFTWARE''Action''software''Station";
public string GetCode()
{
string Code;
try
{
using (RegistryKey regKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine,
Environment.Is64BitOperatingSystem ? RegistryView.Registry64 : RegistryView.Registry32))
{
using (RegistryKey subKey = regKey.OpenSubKey(baseKey, false))
{
Code = (string)subKey.GetValue("Code");
};
};
return string.IsNullOrEmpty(Code) ? "null" : Code;
}
catch (Exception ex)
{
return "null";
}
}
如何创建此 HTTP 500 响应以返回到客户端?
请帮忙。
Dif 你试过这个?
throw new WebFaultException<string>("Registry key not found", HttpStatusCode.InternalServerError);
如果出现
异常 WCF,WCF 会将 HTTP 状态设置为 500 并返回错误。
换句话说,引发异常以向客户端返回 500 响应。
您可以注入状态代码,如下所示:
WebOperationContext ctx = WebOperationContext.Current;
ctx.OutgoingResponse.StatusCode = System.Net.HttpStatusCode.InternalServerError;
注意:InternalServerError
是映射到 HTTP 500 的HttpStatusCode
枚举值。