1

WCF REST Webサービスを使用していて、通常どおりステータスコードとステータスの説明を設定できます。

OutgoingWebResponseContext response = WebOperationContext.Current.OutgoingResponse;
response.StatusCode = statusCode;
response.StatusDescription = detail.Error;

しかし、私はWebFaultExceptionを使用したいと思います。残念ながら、コードを実行すると、常に{"Detail":"NotFound"}が返されます。

[Serializable]
[DataContract]
public class DtoError
{
    public DtoError()
    {

    }
    public DtoError(string error)
    {
        Error = error;
    }
    [DataMember]
    public string Error { get; private set; }
}

var error = new DtoError(entityName + " is not existing");
throw new WebFaultException<DtoError>(error, HttpStatusCode.NotFound);

カスタムエラーのjsonオブジェクトを返すことはできますか?

4

1 に答える 1

0

調査の結果、WebServiceHostの代わりにRestStarterKitのWebServiceHost2を使用していることがわかりました。そして、そのホスト内でWebProtocolExceptionを使用する必要があります。だから今私の作業コードは次のようになります:

throw new WebProtocolException(HttpStatusCode.NotFound, "Not Found", error, null);
于 2012-12-05T20:35:45.190 に答える