我尝试在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中完成这些工作。
答案 0 :(得分:0)
问题来自我尝试从中获取Web服务的Web应用程序的身份验证模式。 应禁用Web应用程序的匿名。 请参阅此帖子以更改IIS管理器上的Web应用程序身份验证:
答案 1 :(得分:0)
我完全面对同样的问题,在我的情况下(这可能对其他人有帮助) 问题是我正在使用" DataMemeber"像这样的枚举值的属性
[DataContract]
public enum Enum1 {
[DataMember]
Enum_Value_Name_1
}
这是上述错误的原因。而正确性步骤是
[DataContract]
public enum Enum1 {
[EnumMember]
Enum_Value_Name_1
}
我通过在浏览器中请求服务的Url来发现这一点。 错误的所有细节都写在那里,它们非常干净。
因此,如果您遇到类似问题,我的建议是:从浏览器请求WCF服务网址,您将获得有关如何解决(特定)问题的更多信息。