gpt4 book ai didi

c# - 返回 JSON 格式故障的 WCF 服务

转载 作者:太空狗 更新时间:2023-10-29 22:05:55 25 4
gpt4 key购买 nike

是否可以让 WCF 服务向客户端返回“故障”?我被引导相信使用 SOAP 时这是可能的,但我想返回 JSON。

理想情况下,应将 HTTP 响应代码设置为指示发生错误的内容,然后在 JSON 响应中提供问题的详细信息。

目前,我正在做这样的事情:

[ServiceContract]
public class MyService
{
[OperationContract]
[WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
[FaultContract(typeof(TestFault))]
public MyResult MyMethod()
{
throw new FaultException<TestFault>(new TestFault("Message..."), "Reason...");
}
}

TestFault 看起来像这样:

[DataContract]
public class TestFault
{
public TestFault(string message)
{
this.Message = message;
}

[DataMember]
public string Message { get; set; }
}

目前服务配置没有什么特别的。

这会导致“400 Bad Request”响应,并带有 HTML 格式的错误。 (当我 includeExceptionDetailInFaults 时,我可以看到“原因...”和 FaultException 的详细信息,但没有关于 TestFault 的详细信息。)

当未抛出 Exception(或 FaultException)时,Web 服务返回 JSON ok。

有什么建议吗?

最佳答案

从 .NET 4 开始,您所需要的一切都是可能的。请参阅 here了解详情。例如:

throw new WebFaultException<string>(
"My error description.", HttpStatusCode.BadRequest);

关于c# - 返回 JSON 格式故障的 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3245531/

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