如何确定SoapMessage位置,服务器或客户端。

如何确定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.