Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “服务引用”客户端中的WCF在异常消息中提供的信息少于“web引用”客户端_C#_Web Services_Wcf_Service Reference_Web Reference - Fatal编程技术网

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

C# “服务引用”客户端中的WCF在异常消息中提供的信息少于“web引用”客户端,c#,web-services,wcf,service-reference,web-reference,C#,Web Services,Wcf,Service Reference,Web Reference,我应该在我的C应用程序中调用web服务。 当我在Visual Studio中添加服务引用以使用该服务时,在异常情况下,我会收到以下消息: SOAP消息传递需要HTTP内容类型头,无 被发现了 但是,当我添加一个web引用时,消息更丰富,更容易理解问题。此消息的最后一部分是服务生成的业务错误消息。为该服务提供的身份验证令牌参数无效,因此返回此错误消息: 客户端找到的响应内容类型为,但应为“text/xml” 请求失败,出现错误消息: - WEB服务错误:未经验证的\u访问 我更倾向于使用服务参考方

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

SOAP消息传递需要HTTP内容类型头,无 被发现了

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

客户端找到的响应内容类型为,但应为“text/xml”

请求失败,出现错误消息:

-

WEB服务错误:未经验证的\u访问

我更倾向于使用服务参考方法,但现在我有点怀疑。
有没有办法改进这种异常或使用服务引用记录原始响应?

我认为第一条消息要清楚得多

它准确地告诉您问题所在,即服务响应中缺少HTTP内容类型头。虽然此标头不是强制性的,但HTTP规范规定您应该从以下位置使用它:

任何包含实体正文的HTTP/1.1消息都应该包含 内容类型标题字段定义该正文的媒体类型

显然,微软在其代理生成工具中内置了一个假设,即该头文件将始终存在


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

第二条消息不清楚,它告诉您头是空的,但很可能是丢失的,并且实际上报告了一个身份验证错误,这只是弄脏了水。谢谢@tom。我部分同意您的意见,但我无法更改服务,它的响应包含一条有用的消息:WEB服务错误:未经验证的访问。@morteza这不是一条有用的消息。问题不在于身份验证。问题是该服务不符合w3指南。我明白了。这听起来是个误会。此消息是由服务生成的业务错误消息。为该服务提供的身份验证令牌参数无效,因此返回此错误消息。@Morteza您应该将此信息添加到您的问题中,因为它是相关的