La "Action" est l'une des chaînes dans l'en-tête du message.
Par exemple, cet appel
var m = Message.CreateMessage(MessageVersion.Default, "http://tempuri.org/MyMethod");
Produit ce message
<s:Envelope
xmlns:a="http://www.w3.org/2005/08/addressing"
xmlns:s="http://www.w3.org/2003/05/soap-envelope">
<s:Header>
<a:Action s:mustUnderstand="1">http://tempuri.org/MyMethod</a:Action>
</s:Header> <s:Body />
</s:Envelope>
Chaque message a un en-tête "d'action", et chaque opération de WCF a un attribut "action". Le système WCF compare ces valeurs pour déterminer à quelle opération envoyer chaque message.
Normalement, vous ne générez pas de messages manuellement, vous n'avez donc pas à vous soucier de cela - tout est géré comme prévu par les valeurs par défaut.
Lorsque vous définissez le contrat de service, vous pouvez associer explicitement une chaîne d'action avec une opération:
[ServiceContract]
interface MyService
{
[OperationContract(Action="http://tempuri.org/MyMethod")]
void ThisIsntReallyCalledMyMethod(string parameter1);
}
Cela pourrait aider: http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/faddaf03-17a2-4c3d-a0ea-88add3d88323 – Bernard