2010-07-07 46 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的回答將根據命名空間,合同名稱和操作名稱來設置操作,這更容易使用,但如果您需要將操作設置爲您想要的操作,則可能無法正常工作。