Web 服务返回错误的内容类型响应标头



我正在尝试在 c# 应用程序中使用第三方 Web 服务(基于 php asp.net 但服务配置失败。已经尝试添加服务/网络参考 - 所有相同的错误:

响应消息的内容类型文本/html 与 绑定的内容类型(text/XML;字符集=UTF-8)。 如果使用 自定义编码器,请确保 IsContentTypeSupport 方法是 正确实施。响应的前 402 个字节是: '<?xml version="1.0" encoding="utf-8"?><soap:Envelope><soap:Body>;<...

[响应是手动编辑的,以正确显示> <字符,否则完全有效]>

对我来说,这似乎是一个完全有效的响应,我试图看看小提琴手在响应标题中写了什么——内容类型:text/html,这可能是问题的根源 - 网络服务发送了错误的内容类型(text/html 而不是文本/xml),但如何将我的客户端配置为忽略/覆盖收到的内容类型?谷歌搜索什么也没给我,所以请问,如果有人可以帮忙 - 问题在哪里?绑定\端点配置是默认的基本 HttpBinding/端点,它由VS2010在使用添加服务引用选项时生成,那里没有任何更改。提前谢谢。

[应用配置]

<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup  name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0,      Culture=neutral, PublicKeyToken=b77a5c561934e089">
  <section name="Collection.ServicePlayground.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
</sectionGroup>
</configSections>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="SmsServiceSoap1" closeTimeout="00:01:00" openTimeout="00:01:00"
    receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false"
    bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
    maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
    messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
    useDefaultWebProxy="true">
    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
    maxBytesPerRead="4096" maxNameTableCharCount="16384" />
    <security mode="None">
    transport clientCredentialType="None" proxyCredentialType="None"
    realm="" />
    <message clientCredentialType="UserName" algorithmSuite="Default" />
    </security>
    </binding>
  </basicHttpBinding>
</bindings>
<client>
  <endpoint address="http://ws1.streamsms.ru/SmsService.php" binding="basicHttpBinding"
    bindingConfiguration="SmsServiceSoap1" contract="SmsService.SmsServiceSoap"
    name="SmsServiceSoap2" />
</client>
</system.serviceModel>
<applicationSettings>
<Collection.ServicePlayground.Properties.Settings>
  <setting name="Collection_ServicePlayground_WSStreamProvider_SmsService"   serializeAs="String">
    <value>http://ws1.streamsms.ru/SmsService.php</value>
  </setting>
 </Collection.ServicePlayground.Properties.Settings>
 </applicationSettings>
 </configuration>

也许矫枉过正,但您可以尝试使用自定义编码器进行绑定。默认值为文本/XML。

http://msdn.microsoft.com/en-us/library/ms751486.aspx

我不确定,但你认为你遇到了这里显示的内容:http://cushen.wordpress.com/2009/04/08/web-service-content-type-error-using-visual-studio-2008/

似乎很相似..您应该使用"添加 Web 引用"与"添加服务引用"(因为后者适用于 WCF 样式服务?

也许.. :)

相关内容

  • 没有找到相关文章

最新更新