Я пытаюсь создать сервис, который, как мы надеемся, будет использовать третья сторона.
Потребитель совместим с SOAP 1.1, поэтому я использую basicHttpBinding для сервера. Когда фактический запрос сделан, что-то идет не так с типами контента, ожидаемыми сервером. Используя basicHttpBinding, я не понимаю, почему сервер все еще ожидает «application / soap + xml», которое, насколько мне известно, требуется только в SOAP 1.2.
Я использовал wireshark, чтобы точно понять, о чем говорили эти двое. Смотрите tcp stream и настройку ниже.
Любая помощь приветствуется.
Запрос стороннего приложения
POST / HTTP / 1.1
SOAPAction:
http://tempuri.org/ITestService/Hello
Content-Type: text / xml; кодировка = UTF-8
Хост: shdesktop: 8000
Длина содержимого: 297
Ожидайте: 100 - продолжить
Соединение: Закрыть
WCF-ответ сервера
HTTP / 1.1 415 Не удается обработать
сообщение, потому что тип содержимого
«Текст / XML; charset = utf-8 'не был
ожидаемый тип 'application / soap + xml;
кодировка = UTF-8' .
Длина содержимого: 0
Сервер: Microsoft-HTTPAPI / 2.0
Дата: вт, 09 февр. 2010 14:03:19 GMT
Соединение: закрыть
Сервисная конфигурация
<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>