WCFで.net ODataクライアントを実装しています。 ODataバージョン3を使用します。このサービスはベンダーによって実装されています。不足しているプロパティを持つオブジェクトを保存すると、サーバーはエラーを返します。しかし、エラー応答には正しい形式(Specification)がありません。したがって、DataServiceContext.SaveChanges(...)
メソッドは常にスロー:WCFがエラーを検出すると、OData 3.0レスポンスはどのように表示されますか?
System.Net WebException: "The remote server returned an error: (400) Bad Request."
を、私は、エラーの理由を取得する可能性を持っていないこの例外を除いて - 何のInnerExceptionが設定されていません。
WCF DataServiceContext.SaveChanges(...)がエラーを検出し、必要な情報を取得できるように、このようなエラーレスポンスはどのように見えますか?
ありがとうございます。
EDIT:
私は、サーバーからの応答を変更するためにfiddlerを使用。これで正しいフォーマットされた応答を見つけようとしました。これは、仕様を再読み込みしてコメントを検討した後に試した最後のバージョンです。
HTTP/1.1 40 Bad Request
Cache-Control: private
Content-Type: application/atom+xml;type=feed
Date: Wed, 11 May 2016 08:02:07 GMT
Content-Length: 243
DataServiceVersion: 3.0;
<?xml version="1.0" encoding="utf-8"?>
<m:error xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<m:code />
<m:message xml:lang="en-US">
Resource not found for the segment 'Productss'.
</m:message>
</m:error>
悲しいことに、それでもまだ動作していません。
クライアントとサーバーの両方がODataバージョン3を使用していますか? – lencharest
私はクライアントについては確信しています。サーバーはベンダーのもので、ODataバージョン3.0と呼ばれていますが、手作業で実装する必要があります。 – scher
サービスからの応答で 'DataServiceVersion'ヘッダーを探します。 [OData v3仕様](http://www.odata.org/documentation/odata-version-3-0/odata-version-3-0-core-protocol/)でバージョニングを読んでください。 – lencharest