Ответ 1
"Действие" - это одна из строк в заголовке сообщения.
Например, этот вызов
var m = Message.CreateMessage(MessageVersion.Default, "http://tempuri.org/MyMethod");
Выдает это сообщение
<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>
Каждое сообщение имеет заголовок "действие", и каждая операция WCF имеет атрибут "действие". Система WCF будет сравнивать эти значения при определении того, какая операция предназначена для отправки каждого сообщения.
Обычно вы не генерируете сообщения вручную, поэтому вам не нужно беспокоиться об этом - все они обрабатываются по умолчанию по умолчанию.
Когда вы определяете контракт на обслуживание, вы можете явно связать строку действия с операцией:
[ServiceContract]
interface MyService
{
[OperationContract(Action="http://tempuri.org/MyMethod")]
void ThisIsntReallyCalledMyMethod(string parameter1);
}