这是交易:
public static Message CreateMessage(
MessageVersion version,
MessageFault fault,
string action)
操作:有关如何处理邮件的说明。
你们在那里放什么? “小心处理!!! ”或“ FRAGILE ”?它到底有什么不同吗?
答案 0 :(得分:8)
“Action”是邮件标题中的一个字符串。
例如,此次调用
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);
}
答案 1 :(得分:0)
我asked a question about the SOAPAction recently: - 我认为 SOAPAction标头用于在WSDL操作中路由消息,但我没有设法找到任何明确说明@soapAction的内容attrib在包含操作中必须是唯一的(这似乎是一个理智的WSDL路由组件的先决条件......)