2010-07-07 118 views
11

我正在创建一个将从另一个服务调用的WCF服务。如何为WCF指定自定义SoapAction

在WSDL的SOAPAction正在出现如下

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

我想这是

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

我如何指定自定义SOAP动作?

回答

8

你可以在服务合同定义指定:

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

你也可以指定经营合同的Action属性:

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

您还可以设置ReplyAction如果您需要。

Darin的回答将根据命名空间,合同名称和操作名称来设置操作,这更容易使用,但如果您需要将操作设置为您想要的操作,则可能无法正常工作。