繁体   English   中英

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

[英]400 bad request for accessing a “http://Url/_vti_bin/listDate.svc” in sharepoint 2010 web service

我试图在Visual Studio中向Windows窗体应用程序添加服务引用以进行访问:

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

但是,当我单击“执行”按钮后,它将返回一个错误,其中包含以下详细信息:

>> 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 Server 2008 R2和Visual Studio 2012安装Windows的同一台计算机上完成这些工作。

问题出在我尝试从中获取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
}

我是通过在浏览器中请求服务的网址来发现此问题的。 错误的所有细节都写在那儿,而且非常干净。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM