У меня есть служба WCF, определенная следующим образом:
[ServiceContract(Namespace = "http://AttributeServiceNameSpace", Name = "AttributeServiceName1")]
public interface IHelloIndigoService1
{
[OperationContract(Name="AttributeOperationName11", Action = "aaa2")]
String HelloIndigo11();
[OperationContract(Name = "AttributeOperationName12", Action = "aaa1")]
String HelloIndigo12();
}
И я перехватила HTTP-сообщение во время вызова службы, как показано ниже.
POST http://xxx/Service.svc/IHelloIndigoServiceAddress1 HTTP /1.1
Content-Type: text / xml;charset = utf-8
SOAPAction: " aaa2 "
Хост: shao-02.fareast.corp.microsoft.com
Content-Length: 162
Ожидается: 100-продолж.
Соединение: Keep-Alive
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<AttributeOperationName11 xmlns="http://AttributeServiceNameSpace"/>
</s:Body>
</s:Envelope>
Таким образом, мы видим, что оба действия и имя операции существуют в сообщении SOAP для вызовасервис.
Но мне просто интересно: зачем нам нужны Действие и Имя операции для идентификации одного метода обслуживания?Только одного должно быть достаточно.