Как вы определяете, какой метод WS был вызван на основе Request.InputStream? - PullRequest
2 голосов
/ 19 января 2012

В HttpModule я хотел бы выяснить, какой веб-метод был вызван / перехвачен, и действовать на его основе. Например, если я позвонил в WebMethod1, сделайте что-нибудь, но ничего не сделайте для WebMethod2.

Если я посмотрю на мыло: Заголовок и мыло: Тело, я увижу название метода, но можно ли будет разобрать мыло: Конверт и, если да, то какая часть?

Ответы [ 2 ]

2 голосов
/ 19 января 2012

Если два метода имеют общую конечную точку, вам необходимо проанализировать сообщение SOAP, чтобы определить, какой метод вызывается.В этом случае вам нужно проверить тег <soap:Body> и найти имя операции, которое является первым именем элемента, принадлежащего тегу body.

1 голос
/ 24 января 2012

Вот мой код, который анализирует мыльное сообщение:

    System.Xml.XmlDocument doc=new System.Xml.XmlDocument();
    doc.LoadXml(soapMessage);

    foreach (XmlNode xn in doc)
    {
        foreach (XmlElement element in xn)
        {
            if (element.Name == "soap:Body")
                result = element.FirstChild.Name;
        }
    }

    return result;
...