“服务引用”客户端中的WCF在异常消息中提供的信息少于“Web引用”客户端

时间:2017-02-14 12:53:10

标签: c# web-services wcf service-reference web-reference

我应该在我的C#应用​​程序中调用Web服务。 当我在Visual Studio中添加服务引用以使用服务时,在异常情况下,我收到以下消息:

  

SOAP消息传递不需要HTTP Content-Type标头,也不需要   被发现了。

但是,当我添加一个Web引用时,该消息更加丰富且易于理解。此消息的最后一部分是服务生成的业务错误消息。我被提供了该服务的无效身份验证令牌参数,因此返回此错误消息:

  

客户发现响应内容类型为'',但预计'text / xml'。

     

请求失败,并显示错误消息:

     

-

     

WEB服务错误:UNAUTHENTICATED_ACCESS

我更喜欢使用“服务参考”方法,但现在我有疑问。 有没有办法改善这种异常或使用“服务参考”记录原始响应?

1 个答案:

答案 0 :(得分:1)

我认为第一条信息更加清晰。

它正好告诉您问题是什么,即服务响应中缺少HTTP Content-Type标头。虽然此标头不是必需的,但HTTP规范规定您应该使用它(来自here):

  

包含实体主体的任何HTTP / 1.1消息应该包含一个   Content-Type标头字段,用于定义该主体的媒体类型。

微软显然在其代理生成工具中加入了这个标题永远存在的假设。

不,你不应该使用WebReference。它来自.net 1.1