在sharepoint 2010 Web服务中访问“http:// url/_vti_bin/listDate.svc”的400个错误请求

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在sharepoint 2010 Web服务中访问“http:// url/_vti_bin/listDate.svc”的400个错误请求相关的知识,希望对你有一定的参考价值。

我试图在visual studio中为我的Windows窗体应用程序添加一个服务引用来访问:

http://intranet.contoso.com/sites/Lab05/_vti_bin/ListData.svc

但在我点击“go”按钮后,它会返回一个错误,其中包含以下详细信息:

下载>'http://intranet.contoso.com/sites/Lab05/_vti_bin/ListData.svc'时出错。请求失败,HTTP状态为400:错误请求。元数据包含无法解析的引用:>'http://intranet.contoso.com/sites/Lab05/_vti_bin/ListData.svc'。远程服务器返回意外响应:(400)错误请求。远程服务器返回错误:(400)错误请求。如果在当前解决方案中定义了服务,请尝试构建解决方案>并再次添加服务引用。

但是当我第一次在IE中输入地址时,它并没有显示任何内容,只有当我通过访问来验证我的自我时

http://intranet.contoso.com/sites/Lab05

IE将在输入后显示一些xml信息

http://intranet.contoso.com/sites/Lab05/_vti_bin/ListData.svc

地址。

我在安装Windows的同一台机器上的Windows Server 2008 R2和visual studio 2012中完成这些工作。

答案

问题来自我尝试从中获取Web服务的Web应用程序的身份验证模式。应禁用Web应用程序的匿名。请参阅此帖子以更改IIS管理器上的Web应用程序身份验证:

https://sharepoint.stackexchange.com/questions/22349/listdata-svc-returns-error-400-bad-request-in-visual-studio

另一答案

我完全面对同样的问题,在我的情况下(这可能对其他人有帮助)问题是我使用“DataMemeber”属性来表示这样的枚举值

[DataContract]
public enum Enum1 { 
     [DataMember]
     Enum_Value_Name_1
}

这是上述错误的原因。而正确的步骤是

[DataContract]
public enum Enum1 { 
     [EnumMember]
     Enum_Value_Name_1
}

我通过在浏览器中请求服务的Url来发现这一点。错误的所有细节都写在那里,它们非常干净。

因此,如果您遇到类似的问题,我的建议是:从浏览器请求WCF服务URL,您将获得有关如何解决(特定)问题的更多信息。

以上是关于在sharepoint 2010 Web服务中访问“http:// url/_vti_bin/listDate.svc”的400个错误请求的主要内容,如果未能解决你的问题,请参考以下文章

在sharepoint 2010 Web服务中访问“http:// url/_vti_bin/listDate.svc”的400个错误请求

是否可以在 Web 部件中使用多线程访问 SharePoint 2010 列表?

使用 Sharepoint 2010 服务查询文档列表及其内容

SharePoint 2013 中的自定义 Web 服务与模拟

Sharepoint 2010 - 获取子网站上的所有组名

如何在 SharePoint 2010 的 XSLT 列表 Web 部件中隐藏列表功能区?