Forum Discussion

Aaron_McMahon_2's avatar
Aaron_McMahon_2
Icon for Nimbostratus rankNimbostratus
Aug 16, 2007

get_global_statistics() - Returns a bad XML file

I'm trying to get statistics for the BIG-IP using SystemStats.get_global_statistics() in a VB.NET project. VB.NET chokes on the response with this error:

 

 

There is an error in XML document (579, 67).

 

 

Other SOAP calls to the BIG-IP work fine. I'm basing my code on the sample VB.NET project included in the iControl SDK.

 

 

I checked the XML document that gets returned and it's fine. I can import the XML into a web browser and it will render without errors. But VS.NET thinks there is an error at line 579, character 67.

 

 

The BIG-IP I'm running it against is v9.4.1. I did a test with v9.2.4 and it worked fine.

 

 

Any ideas what's happening here? I've attached the XML response from the BIG-IP that VB.NET doesn't like for some reason. I had to break it into two files because the file upload doesn't allow files greater than 100k and it wouldn't accept a ZIP file. You'll need to re-assemble it into one XML file.

 

 

Thanks...

 

- Aaron

 

3 Replies

  • In your attachments, there are something like 9 request/response pairs like the following chained after each other.

     

     

     

    BeforeDeserialize

     

    ...

     

     

    AfterSerialize

     

     

     

    I tried stripping all of the specific responses (between BeforeDeserialize and AfterSerialize) into separate xml files and they all validate with an xml validator. Can you get me just the SOAP Request/Response that is giving the error?

     

     

    -Joe

     

  • Sorry, I forgot that the logfile showed multiple SOAP calls. I stripped it down to just the relevant SOAP request/response.

     

     

    The thing is, these validate just fine. That's what I can't figure out. I added a SOAP monitoring subroutine to my VB.NET project to save the exact SOAP response that was being received from the BIG-IP. The XML file validates fine, but VB.NET has an XML processing error with the same document. And it's only with v9.4.1, not 9.2.4.

     

     

    If I can't figure this out, I can probably hack the SOAP monitoring subroutine to give the program access to the SOAP document so I can just import it into an XML object and parse it myself. I'm using the proxy library included with SDK which has been great up to this point. In this specific case, it's been frustrating because what SHOULD simply "just work" isn't working and I can't figure out why. But I do know the SOAP document being received is valid. I don't know why VB.NET chokes on it with the SystemStatistics proxy library.

     

     

    For the record, I used the .NET WSDL command line program to generate the SystemStatistics proxy library. Maybe I used a wrong version of that program or a wrong version of iControl or something?
  • This is odd. If it's a valid xml document being returned, and you are getting an XML parsing error, then the version of WSDL you are generating shouldn't matter as it hasn't even gotten to that point in the processing chain.

     

     

    Have you tried this in C as well? Shouldn't matter at all since they use the same framework code to parse the xml.

     

     

    The only thing I can think of is if there is something going on with keep-alives that is mucking up the stream. But that still doesn't make sense since the document you passed along is completely valid.

     

     

    I'll keep digging, but I'm somewhat at a loss here...

     

     

    -Joe