如何为WCF指定自定义SoapAction

Ram*_*Ram 11 .net c# asp.net wcf

我正在创建一个将从另一个服务调用的WCF服务.

在WSDL中,soapaction出现如下

<soap12:operation soapAction="http://tempuri.org/ISubscriptionEvents/MyMethod" style="document" />
Run Code Online (Sandbox Code Playgroud)

我想要它

<soap12:operation soapAction="http://www.TextXYZ.com/FUNC/1/0/action/MyMethod" style="document" />
Run Code Online (Sandbox Code Playgroud)

如何指定自定义soap操作?

Qua*_*ter 22

您还可以Action在操作合同上指定属性:

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

您也可以ReplyAction根据需要进行设置.

Darin的答案将根据命名空间,合同名称和操作名称设置操作,这更容易使用,但如果您需要将操作设置为您想要的操作,则可能无效.


Dar*_*rov 8

您可以在服务合同定义中指定它:

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