2

我尝试在 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 的同一台机器上的 Windows Server 2008 R2 和 Visual Studio 2012 中完成这些工作。

4

2 回答 2

0

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

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

于 2013-10-23T15:03:58.377 回答
0

我完全遇到了同样的问题,在我的情况下(这可能对其他人有帮助)问题是我正在使用“DataMemeber”属性作为这样的枚举值

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

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

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

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

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

于 2015-09-15T10:52:43.140 回答