Ram
Ram

Reputation: 11644

How to specify custom SoapAction for WCF

I am creating a WCF service which will be called from another service.

In the WSDL soapaction is appearing as follows

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

I want it to be

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

How can I specify the custom soap action?

Upvotes: 12

Views: 18644

Answers (2)

Quartermeister
Quartermeister

Reputation: 59139

You could also specify the Action property on the operation contract:

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

You can also set the ReplyAction if you need to.

Darin's answer will set the action based on the namespace, the contract name, and the operation name, which is much easier to use, but may not work if you need to set the action to exactly what you want.

Upvotes: 23

Darin Dimitrov
Darin Dimitrov

Reputation: 1038790

You could specify it in the service contract definition:

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

Upvotes: 8

Related Questions