捕获svclog文件的第二个E2ETraceEvent

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了捕获svclog文件的第二个E2ETraceEvent相关的知识,希望对你有一定的参考价值。

我需要使用服务跟踪查看器找到标签200,它看起来像那样!

<SOAP-ENV:Body xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="id-14799">
<ns2:SendInvoice xmlns:ns2="http://www.zadrwan.com/services/" xmlns:ns3="http://www.zadrwan.com/services/DocumentSendTo" xmlns:ns4="http://www.zadrwan.com/services/VersionRequest">                            
<ns2:Response>200</ns2:Response>
<ns2:Comments>Success!.</ns2:Comments>
</ns2:SendInvoice>

当运行webservice时,跟踪并写一个E2ETraceEvent,第一个我不需要它,但第二个E2ETraceEvent(请求)是我需要的那个,在哪里是

我在这个页面上找到了一些代码monitoring-and-reading-svclog-file

我的代码是这样的:

 XmlReader reader = XmlReader.Create(stream, settings);
            while (reader.Read())
            {

                switch (reader.NodeType)
                {
                    case XmlNodeType.Element:

                        if (reader.Name == "E2ETraceEvent")
                        {

                            XmlReader subReader = reader.ReadSubtree();

                            while (subReader.Read())
                            {
                                switch (reader.NodeType)
                                {
                                    case XmlNodeType.Element:
                                        while (reader.Name == "Body")
                                        {
                                            Console.WriteLine(subReader.ReadOuterXml());
                                        } 

                                        break;
                                }
                            }

                        }
                        break;
                }
            }

如何捕获第二个,包含n2响应的标签?

答案

您需要添加命名空间。就像是:

        using (XmlReader reader = XmlReader.Create(new StringReader(xml)))
        {
            XmlNamespaceManager nsmanager = new XmlNamespaceManager(reader.NameTable);
            nsmanager.AddNamespace("ns2", "http://www.zadrwan.com/services/");

            while (reader.Read())
            {
                switch (reader.Name)
                {
                    case "ns2:Response":
                        Console.WriteLine(reader.Name);
                        Console.WriteLine(reader.ReadInnerXml());
                        break;
                }
            }
        }

以上是关于捕获svclog文件的第二个E2ETraceEvent的主要内容,如果未能解决你的问题,请参考以下文章

运行SDL程序的第二个实例会导致系统范围冻结

从文本文件中提取一行中的第二个单词

使用 DynamoDB 流 捕获表活动

为啥我的第二个音频文件不能使用 currentTime 属性播放?

XCode iPhone 多个目标 - 创建了第二个不同名称的可执行文件,但我的第二个“可执行文件”的“路径”是错误的

CreateProcess 和 WaitForSingleObject 在两个 PDF 文件中的第二个失败