Как указать собственный SoapAction для WCF - PullRequest
11 голосов
/ 07 июля 2010

Я создаю службу WCF, которая будет вызываться из другой службы.

В WSDL мыльная операция выглядит следующим образом

<soap12:operation soapAction="http://tempuri.org/ISubscriptionEvents/MyMethod" style="document" />

Я хочу, чтобы это было

<soap12:operation soapAction="http://www.TextXYZ.com/FUNC/1/0/action/MyMethod" style="document" />

Как мне указать собственное действие мыла?

Ответы [ 2 ]

22 голосов
/ 07 июля 2010

Вы также можете указать Action свойство в договоре операции:

[ServiceContract]
public interface IMyServiceContract
{
    [OperationContract(Action = "http://www.TextXYZ.com/FUNC/1/0/action/MyMethod")]
    void MyMethod();
}

Вы также можете установить ReplyAction, если вам нужно.

Ответ Дарина установит действие на основе пространства имен, имени контракта и имени операции, которое намного проще в использовании, но может не сработать, если вам нужно установить для действия именно то, что вы хотите.

8 голосов
/ 07 июля 2010

Вы можете указать это в определении договора на обслуживание:

[ServiceContract(Namespace = "http://www.TextXYZ.com/FUNC/1/0/action")]
public interface IMyServiceContract
{
    [OperationContract]
    void MyMethod();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...