0

ADO.NET/WCFデータサービスはまったく初めてです。ADO.NETデータサービスを初めてセットアップしてテストしたときに、次の不可解なエラーが発生しました。

応答では、プロトコルのバージョン2を使用する必要がありますが、データサービスのMaxProtocolVersionはDataServiceProtocolVersion.V1に設定されています。

オンラインの参照は、私が設定する必要があることを示しています:

config.DataServiceBehavior.MaxProtocolVersion = Common.DataServiceProtocolVersion.V2

ただし、このプロパティはIntelliSenseでは使用できず、手動でコーディングするとビルドエラーが発生します。

Visual Studio 2008 SP1、.NET 3.5 SP1、およびVB.NETを使用しています。プロトコルのバージョン2を有効にするにはどうすればよいですか?

4

1 に答える 1

1

約1日半の検索(およびVS2008 SP1の再適用)の後、このブログ記事はようやく問題を解決しました。

Astoria V.Next Ships for .NET3.5SP1->バージョン管理の問題

私のインストールではすべてがうまくいったことがわかりましたが、InitilizeService()メソッドのシグネチャがこれまでになく微妙に変更されたという事実をスキップしました。スティーブンフォルテが彼のブログで示しているように:

 1:  //change the IDataServiceConfiguration to DataServiceConfiguration
 2:  public static void InitializeService(DataServiceConfiguration config)
 3:  {
 4:      config.SetEntitySetAccessRule("*", EntitySetRights.All);
 5:      //take advantage of the "2.0" features
 6:      config.DataServiceBehavior.MaxProtocolVersion =
 7:          System.Data.Services.Common.DataServiceProtocolVersion.V2;
 8:  }

最初に変更する必要があるのは2行目で、インターフェイスIDataServiceConfigurationを単なるDataServiceConfigurationに変更します(これを行うためのより良い方法があると確信していますが、まだ理解していません)。次に、DataServiceBehaviorのMaxProtocolVersionプロパティをV2に設定します。その後、すべての新機能を利用できます!

強調鉱山。単純な「私」がもたらす違いは驚くべきことです。Stephenの懸念に答えるために、これもMSDNによってバックアップされていますが、現在、インターフェイスと実装オブジェクトの参照の違いを指摘していません。

データサービスの構成(ADO.NETデータサービス)

VBのコードは次のとおりです。

'change the IDataServiceConfiguration to DataServiceConfiguration
Public Shared Sub InitializeService(ByVal config As DataServiceConfiguration)
    config.SetEntitySetAccessRule("*", EntitySetRights.All)
    'take advantage of the "2.0" features
    config.DataServiceBehavior.MaxProtocolVersion = System.Data.Services.Common.DataServiceProtocolVersion.V2
End Sub

コンパイル、テスト、および合格。より大きな世界への第一歩を踏み出しました...

于 2013-01-11T20:39:57.227 に答える