如何确定SoapMessage位置,服务器或客户端。
如何确定是否在客户端或服务器端调用传递给 SoapExtenion 的 ProcessMessage 方法的消息?
我看到有 SoapServerMessage 和 SoapClientMessage 类型。查看我的 ProcessMessage 方法:
How do you determine if the message passed to the ProcessMessage method of a SoapExtenion is being called on the client side or server side?
I see that there are SoapServerMessage and SoapClientMessage types. Look at my ProcessMessage method:
public override void ProcessMessage(SoapMessage message)
{
WriteMessageType(message);
switch (message.Stage)
{
// cases left out intentionally for brevity
}
}
如果我输出传递给上述方法的 SoapMessage 的类型,这是我得到的:
If I output the type of SoapMessage being passed to the above method, here is what I get:
System.Web.Services.Protocols.SoapServerMessage
System.Web.Services.Protocols.SoapServerMessage
System.Web.Services.Protocols.SoapServerMessage
System.Web.Services.Protocols.SoapServerMessage
每次为 SoapMessageState 调用 ProcessMessage 方法时,有四行不同的行。所以,我问,如果消息类型始终是 SoapServerMessage ,如何在每个 SoapMessageStage 中分辨代码运行的位置?
Four different lines for each time the ProcessMessage method is called for each SoapMessageState. So, I ask, how can I tell where the code is running during each SoapMessageStage if the message type is always a SoapServerMessage?
Thanks.
如果它是SoapServerMessage,这意味着它从未在客户端调用。
If it's a SoapServerMessage, that means it has never been called on the client side.