我应该在我的C#应用程序中调用Web服务。 当我在Visual Studio中添加服务引用以使用服务时,在异常情况下,我收到以下消息:
SOAP消息传递不需要HTTP Content-Type标头,也不需要 被发现了。
但是,当我添加一个Web引用时,该消息更加丰富且易于理解。此消息的最后一部分是服务生成的业务错误消息。我被提供了该服务的无效身份验证令牌参数,因此返回此错误消息:
客户发现响应内容类型为'',但预计'text / xml'。
请求失败,并显示错误消息:
-
WEB服务错误:UNAUTHENTICATED_ACCESS
我更喜欢使用“服务参考”方法,但现在我有疑问。 有没有办法改善这种异常或使用“服务参考”记录原始响应?
答案 0 :(得分:1)
我认为第一条信息更加清晰。
它正好告诉您问题是什么,即服务响应中缺少HTTP Content-Type标头。虽然此标头不是必需的,但HTTP规范规定您应该使用它(来自here):
微软显然在其代理生成工具中加入了这个标题永远存在的假设。包含实体主体的任何HTTP / 1.1消息应该包含一个 Content-Type标头字段,用于定义该主体的媒体类型。
不,你不应该使用WebReference。它来自.net 1.1