Обработка запроса SOAP без SOAPAction в заголовке

#.net #web-services #soap #axis

#.net #веб-сервисы #soap #ось

Вопрос:

У меня чертовски проблема. У меня есть веб-служба .NET SOAP, которая вызывается клиентом Axis.

Проблема в том, что в информации заголовка нет действия SOAP, и IIS просто выдает ошибку 500. Клиент говорит мне отключить проверку заголовка, но я не уверен, как это сделать в .NET. Единственное, что я могу придумать, это написать метод для захвата и анализа запроса вручную, что кажется болезненным. Любая помощь будет оценена.

 <?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
...
</soapenv:Body>
POST /Services/MyService.asmx HTTP/1.0
Content-Type: text/xml; charset=utf-8
Accept: application/soap xml, application/dime, multipart/related, text/*
User-Agent: Axis/1.2.1
Host: 1.2.3.4:55
Cache-Control: no-cache
Pragma: no-cache
SOAPAction: ""
Content-Length: 1465
  

Комментарии:

1. Правильно ли заполнено soapaction в привязке WSDL?

Ответ №1:

Решил это сам. Необходимо добавить:

 [SoapDocumentService(RoutingStyle=SoapServiceRoutingStyle.RequestElement)]
  

К определению сервиса.