WCF REST Services - Generic exception handling

前端 未结 2 440
天命终不由人
天命终不由人 2021-02-06 02:18

I have a lot of legacy code that is now a backend for a WCF REST service - it used to be a usual WCF service backend before, if that matters. I want to implement a mechanism tha

2条回答
  •  轻奢々
    轻奢々 (楼主)
    2021-02-06 02:51

    When you change the WCF SOAP services to REST, the whole mindset of error reporting and handling changes.

    In SOAP, faults are part of your contract. In REST, they simply become codes that you output in the HTTP response code and description.

    Here is a catch snippet:

    catch (Exception e)
    {
        Trace.WriteLine(e.ToString());
    
        OutgoingWebResponseContext response = WebOperationContext.Current.OutgoingResponse;
        response.StatusCode = System.Net.HttpStatusCode.UnsupportedMediaType; // or anything you want
        response.StatusDescription = e.Message;
        return null; // I was returning a class
    }
    

    So I would suggest you create a helper code which creates relevant error codes for you and put in the response.

提交回复
热议问题