В сообщении Message.CreateMessage, что означает параметр «действие»? - PullRequest
12 голосов
/ 30 августа 2010

Вот предложение:

public static Message CreateMessage(
    MessageVersion version,
    MessageFault fault,
    string action)

action : описание того, как должно обрабатываться сообщение.

Что вы, ребятаположить туда?" Обращаться с осторожностью !!! " или " ХРАМЯЩИЙ "?Имеет ли это какое-то значение в конце?

Ответы [ 2 ]

8 голосов
/ 31 августа 2010

«Действие» является одной из строк в заголовке сообщения.

Например, этот звонок

        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>

Каждое сообщение имеет заголовок «action», а каждая операция WCF имеет атрибут «action». Система WCF будет сравнивать эти значения при определении операции, в которую следует отправлять каждое сообщение.

Как правило, вы не генерируете сообщения вручную, поэтому вам не нужно об этом беспокоиться - все обрабатывается, как ожидается, по умолчанию.

Когда вы определяете Договор на обслуживание, вы можете явно связать строку действия с операцией:

[ServiceContract]
interface MyService
{
   [OperationContract(Action="http://tempuri.org/MyMethod")]
   void ThisIsntReallyCalledMyMethod(string parameter1);
}
0 голосов
/ 30 августа 2010

I недавно задал вопрос о SOAPAction : - Я думаю , что заголовок SOAPAction используется при маршрутизации сообщений в операции WSDL, но мне не удалось найти ничего в котором прямо говорится, что атрибут @soapAction должен быть уникальным в рамках содержащейся операции (что, по-видимому, является обязательным условием для нормального компонента маршрутизации WSDL ....)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...