Vb.net 如何将ADO.NET数据服务MaxProtocolVersion设置为使用V2?

Vb.net 如何将ADO.NET数据服务MaxProtocolVersion设置为使用V2?,vb.net,.net-3.5,wcf-data-services,visual-studio-2008-sp1,Vb.net,.net 3.5,Wcf Data Services,Visual Studio 2008 Sp1,我完全不熟悉ADO.NET/WCF数据服务。在我第一次设置和测试ADO.NET数据服务时,我遇到了一个令人费解的错误: 响应要求使用协议的版本2,但 数据服务的MaxProtocolVersion设置为 DataServiceProtocolVersion.V1 在线参考表明我需要设置: config.DataServiceBehavior.MaxProtocolVersion = Common.DataServiceProtocolVersion.V2 但是,此属性在IntelliSense

我完全不熟悉ADO.NET/WCF数据服务。在我第一次设置和测试ADO.NET数据服务时,我遇到了一个令人费解的错误:

响应要求使用协议的版本2,但 数据服务的MaxProtocolVersion设置为 DataServiceProtocolVersion.V1

在线参考表明我需要设置:

config.DataServiceBehavior.MaxProtocolVersion = Common.DataServiceProtocolVersion.V2
但是,此属性在IntelliSense中不可用,并且在手动编写代码时会产生生成错误


我正在使用VisualStudio2008SP1、.NET3.5SP1和VB.NET。如何启用协议的版本2?

经过大约一天半的搜索(并重新应用VS2008 SP1),这篇博客文章终于澄清了问题:

结果证明我的安装一切正常,但我忽略了InitilizeService()方法的签名发生了微妙的变化这一事实。正如Stephen Forte在他的博客中指出的:

 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也支持这一点,但他们目前没有指出引用接口与实现对象的区别:

以下是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
编译、测试并通过。我刚刚迈出了进入更大世界的第一步