gpt4 book ai didi

wcf - 以 RESTful 方式从 WCF 服务返回错误的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-03 07:50:53 24 4
gpt4 key购买 nike

以 RESTful 方式使用 WCF 看起来很棒。我非常喜欢简单性和灵活性这样的大炮,但我也喜欢 Urls 最终的外观。我能说什么,我是一名程序员。
用于检索和编辑资源的简单 API 与一组几乎同样简单的可能错误响应相匹配,我不禁感到,为了保持“纯粹”的 RESTful 方法,我可能会切掉 Nose 以示反对,或者更具体地说,我的网络服务消费者的 Nose 。我可能是错的,但似乎没有太多我可以使用的 Http 错误代码,也没有办法传回自定义错误消息。
澄清一下,我说的是适当的异常错误,而不是预期的错误。我想真正地向用户传达一个问题,以帮助他们确定他们需要做什么来纠正它。
我正在考虑的可能选项...

  • 只需使用 Http 错误代码 – 这似乎限制了我能够表达的内容,并且不允许我提供自定义消息。如果我错了,请(!)纠正我。
  • 总是返回 Http Success 但返回自定义错误对象 – 显然是最灵活的,但肯定不是最 RESTful 的。

  • 如果有人可以分享这个特定问题的一些真实世界经验,我将非常感激。

    更新
    感谢您使用 StatusDescription 的建议 OutgoingWebResponseContext 的属性(property)目的。起初似乎是我可以使用的东西。
    我得出的结论是,上面的第二个选项不适合我。我想坚持 Http 能给我的。
    但是,我在让它工作时遇到了问题。无论我为此属性提供什么值,它都不会在响应中返回。
    我的服务方法是这样的
    public MyType GetMyTypes(string criteria)
    {
    try
    {
    return GetMyTypes();
    }
    catch (Exception ex)
    {
    OutgoingWebResponseContext response = WebOperationContext.Current.OutgoingResponse;
    response.StatusCode = HttpStatusCode.Forbidden;
    response.StatusDescription = "A Big fat error occurred";
    return null;
    }
    }
    这是原始响应消息。没有提到自定义消息......

    HTTP/1.1 403 Forbidden
    Server: ASP.NET Development Server/9.0.0.0
    Date: Wed, 07 Jan 2009 14:01:20 GMT
    X-AspNet-Version: 2.0.50727
    Cache-Control: private
    Content-Length: 0
    Connection: Close


    并不是说我只需要访问客户端上的正确属性。信息根本没有通过链接发送。
    这是什么 StatusDescription属性其实呢?

    更新
    我从来没有找到如何设置 StatusDescription 属性。我最终完全没有包含任何错误消息,并且仅使用 Http 状态代码。我选择为我的服务公开 Soap 和 Restful 端点,因此客户端可以选择他们喜欢使用的端点——简单的 Restful 消息或相对丰富的 Soap 消息。

    最佳答案

    发送正确的响应代码,您可以在响应正文中提供自定义错误消息。

    关于wcf - 以 RESTful 方式从 WCF 服务返回错误的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/417632/

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