XmlServiceExplorer

This tool offers a graphical user interface to build requests to be sent to the XML service. The response is displayed for inspection. Thus, the XmlServiceExplorer allows administrators to debug how the XML service works and what kind of information is passed to Web Interface.

Details

Presentation Server provides a system service running on port 80 (by default) called Citrix XML Service. As implied by its name, the service uses XML to format the data exchanged over HTTP. All requests and responses are defined in the Document Type Definition (DTD) called NFuse.dtd. This file is distributed with all versions of Web Interface (C:\inetpub\wwwroot\Citrix\XenApp\conf).

By posting any correctly formatted request to the XML service on its designated port and to the path /scripts/wpnbr.dll results in a response containing the desired information. This works for all versions of Presentation Server, XenApp and XenDesktop.

You could now go and start building your own XML requests using tools like Fiddler2, a Web Debugging Proxy, and sending them to a XML service of your choice. But wouldn’t that be wearisome? Wouldn’t you rather create these requests using a GUI? That’s what I thought and why I wrote an application called XmlServiceExplorer enabling you (and me - all of us) to communicate with the XML service to …

To get going, all you need is to download the executable and place a copy of your NFuse.dtd in the same directory as the executable. It is based on Visual Basic .NET so that the .NET Framework 2.0 is also a requirement to run the XmlServiceExplorer.

Using the original DTD provided by Citrix Web Interface results in an exception after launch. This is caused by a syntactical error in two definitions. To resolve this issue, replace the definition of the attribute list of IconData and DesiredIconData with the following text. This change does not alter the specified XML structure but merely moves the comments to correct the syntactical error in the DTD.

<!ATTLIST IconData
size CDATA #REQUIRED
bpp CDATA #REQUIRED
format CDATA #REQUIRED>
<!- size: 16 | 32 | 48 | 128 | 256 –>
<!- bpp: 4 | 8 | 16 | 32 –>
<!- format: raw | png –>
<!ATTLIST DesiredIconData
size CDATA #IMPLIED
bpp CDATA #IMPLIED
format CDATA #IMPLIED>
<!- format: raw | png –>
<!- size: 16 | 32 | 48 | 128 | 256 –>
<!- bpp: 4 | 8 | 16 | 32 –>

More information is available in the introductionary article: Talking to the Xml Service.

Further reading

A list of all available articles covering the XmlServiceExplorer can be found under the tag XmlServiceExplorer.

Download

The current version of the XmlServiceExplorer can be downloaded here.

Issues Resolved

1.1.6 (10.12.2008)

1.1.5 (29.09.2008)

1.1.0 (22.07.2008)

1.0.0 (17.07.2008)

Feedback is always welcome! If you'd like to get in touch with me concerning the contents of this article, please use Twitter.