Bir üçüncü tarafın umarım tüketeceği bir hizmet oluşturmaya çalışıyorum.
Tüketici SOAP 1.1 ile uyumludur, bu yüzden sunucu için basicHttpBinding kullanıyorum. Gerçek istek yapıldığında, sunucu tarafından beklenen içerik türlerinde bir şeyler ters gitmektedir. BasicHttpBinding kullanarak neden hala benim uygulama için sadece SOAP 1.2 tarafından talep edilen sunucu 'application/soap + xml' beklemiyor anlamıyorum.
Bu ikisi hakkında ne iletişim kurduğunu anlamak için wireshark kullandım. Tcp akışına bakın ve aşağıdaki ayarları yapın.
Herhangi bir yardım için teşekkür ederiz.
WCF ve Sabun 1.1
3. parti uygulama isteği
POST/HTTP/1.1
SOAPAction: http://tempuri.org/ITestService/Hello
Content-Type: text/xml; charset = utf-8
Host: shdesktop: 8000
İçerik-Uzunluk: 297
Expect: 100-devam
Bağlantı: Kapat
WCF Sunucu yanıtı
HTTP/1.1 415 İçerik türü 'text/xml olduğu için iletisini işleyemiyor; charset = utf-8 ' beklenen tip' application/soap + xml değildi; charset = utf-8 '.
İçerik-Uzunluk: 0
Sunucu: Microsoft-HTTPAPI/2.0
Tarih: Sal, 9 Şubat 2010 14:03:19 GMT
Bağlantı: yakın
Servis yapılandırması
<system.serviceModel>
<services>
<service behaviorConfiguration="behTestService" name="ConsoleApplication1.TestService">
<endpoint address="" binding="mexHttpBinding" contract="IMetadataExchange" />
<endpoint address="TestService" binding="basicHttpBinding"
contract="ConsoleApplication1.ITestService" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="behTestService">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Biz Metin içeren bir web hizmetindeki bir mesaj/hatayı alınca
oh, SOAP 1.1 'application/soap + xml' kullanır mı? WebHttpBinding'i yarın test edeceğim, teşekkürler! Herhangi bir fark yaratırsa, basit bir asmx hizmeti oluşturduğumda çalıştığı gerçeğini biliyorum. –
@Silas: "eski stil" ASP.NET web servisleri (ASMX) ** ve ** WCF basicHttpBinding kullanımı SOAP 1.1 - yani, tamam, gerçekten. Müşterinizin size bir SOAP isteği göndermesini veya yalnızca URL'nizi –
URL'nize göndermeye çalışıp çalışmadığını kontrol etmelisiniz, bunun yerine http: // numaralı telefonu arayarak http: // /TestService 'yi aramam gerekiyordu. Benim için aptalca hata. Yine de yardım için teşekkürler! –