2010-07-07 2 views
11

Je crée un service WCF qui sera appelé à partir d'un autre service.Comment spécifier SoapAction personnalisé pour WCF

Dans le soapaction WSDL apparaît comme suit

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

Je veux que ce soit

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

Comment puis-je spécifier l'action de savon personnalisé?

Répondre

8

Vous pouvez le spécifier dans la définition du contrat de service:

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

Vous pouvez également spécifier la propriété Action sur le contrat d'exploitation:

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

Vous pouvez également définir la ReplyAction si vous avez besoin . La réponse de Darin définira l'action en fonction de l'espace de nom, du nom du contrat et du nom de l'opération, ce qui est beaucoup plus facile à utiliser, mais peut ne pas fonctionner si vous devez définir l'action exactement comme vous le souhaitez.

Questions connexes