Webservice gibt falsche content-type-Antwort-header
Ich versuche die Verwendung von third-party-web-service (php-basiert) in asp.net c# - Anwendung, und nicht mit Dienst-Konfiguration.Schon versucht add service/web-Referenz - alle den gleichen Fehler :
Den content-Typ "text/html" der Antwortnachricht stimmt nicht überein die
Inhaltstyp der Bindung (text/xml; charset=utf-8). Wenn Sie mit einem
benutzerdefinierte encoder, werden Sie sicher, dass die IsContentTypeSupported-Methode ist
richtig umgesetzt. Die ersten 402 bytes der Antwort waren:
'<?xml version="1.0" encoding="utf-8"?><soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body>;<...
[Antwort wurde manuell bearbeitet, um korrekt angezeigt > < chars, es ist vollkommen gültig sonst]
Mir scheint es wie eine perfekt gültige Antwort, und ich habe versucht, zu schauen, was Fiedler schreibt in der Antwort-Header -
Content-Type: text/html, was ist wahrscheinlich die Ursache von Problem - webservice verschickt falsche content-type (text/html statt text/xml) , aber, wie zu konfigurieren, meinen Mandanten zu ignorieren/überschreiben empfangenen content-Typ ? Googeln bringt mir nichts, also bitte, wenn jemand helfen könnte - wo problem ist? Verbindlich\endpoint-Konfiguration eine Standard-basicHttpBinding/Endpunkt die
generiert von VS2010, wenn Sie mit Add Service Reference option, nichts wurde verändert.
Vielen Dank im Voraus.
[app.config]
<?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>
- Sind Sie sicher, dass der Dienst "basicHttpBinding"? Können Sie Zugriff auf die wsdl? Klingt wie eine verbindliche Missverhältnis zwischen client und service.
- Ich kann auf die WSDL-aber es gibt mir nichts neues, über das binden :(. Es ist definitiv bindend problem - custom ws test-Tools (soapUI) funktioniert perfekt, mit service, und das Problem ist, dass der response-header vom Dienst enthält ContentType:text/html, die ist einfach nur falsch - response-content ist durchaus gültig soap/xml. Ich gerade nicht, wie zu konfigurieren, meine Bindung/Endpunkt nicht nehmen, die header ernst 🙂
- BTW, vielleicht kann es etwas Licht, web-service ist php-basiert, und "basicHttpBinding" wurde erstellt von vs2010-option "Add Service Reference".
- Können Sie posten Sie Ihre .config-Datei?
- Sicher, aktualisierte Frage.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vielleicht übertrieben, aber Sie könnten versuchen, mit einem benutzerdefinierten encoder für die Bindung. Der Standardwert ist text/xml.
http://msdn.microsoft.com/en-us/library/ms751486.aspx
Ich bin nicht sicher, aber denken Sie, Sie laufen in das, was hier gezeigt: http://cushen.wordpress.com/2009/04/08/web-service-content-type-error-using-visual-studio-2008/
Scheint ziemlich ähnlich.. sollte Man nutzen Add Web Reference vs Add Service Reference (denn die letztere ist für die WCF-style-Diensten?)
Vielleicht.. 🙂