This article explains the XML Service and how to change the XML Service port in XenApp. The Citrix XML Service was introduced with MetaFrame 1.8 Service Pack 2 and a Feature Release 1 license has to be installed. MetaFrame XP and later incorporates the Citrix XML Service as a standard feature.
The following command-line syntax applies to all MetaFrame environments.
Syntax:
CTXXMLSS [switches] [/Rnnnn] [/Knnn] [/U] [/?]
Parameters:
/Rnnnn - Registers the service on port number nnnn.
/Knnn - Keep-Alive nnn seconds (default 9).
/U - Unregisters the service.
/? (help) - Displays the syntax for the utility and information about the utilities options.
After the Citrix XML Service is registered, a new service appears in the Services Applet and registry entries are created. Ensure this service is started.
To determine which port is being used, either verify its presence in the Citrix Management Console (MetaFrame XP and later) and/or locate the following registry key (assuming IIS port sharing is not being used):
Caution! Refer to the Disclaimer at the end of this article before using Registry Editor.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CtxHttp
Value: TcpPort
If the value is listed in hex, change to a decimal notation.
If Microsoft IIS is installed, the administrator of the MetaFrame XP installation is given the option to install the Citrix XML Service and share a port with IIS.
In fact, no separate XML Service is running. IIS serves the XML data using an ISAPI filter named Wpnbr.dll located in the \Inetpub\Scripts folder. To remove the Citrix XML Service functionality from your MetaFrame server, rename or delete the Wpnbr.dll file.
And when the XML Service port is changed on the MetaFrame Servers, change NFuse or Web InterFace, MetaFrame Secure Access Manager, or the Program Neighborhood Client to use the new port.
Complete the following steps to unregister the XML Service:
Open a command prompt window.
Run ctxxmlss /u (This command unregisters the Citrix XML Service and marks it for deletion).
Unregister the service using the preceding instructions.
Open a command prompt window.
Run ctxxmlss /r [Port Number]. Note that there is no space between the switch “/r” and the port number.
Open the service control manager and manually start the Citrix XML Service.
Note: During the unregister/register process you might see the following error message. There is no need to restart the server. Run the unregister command again, go to services and attempt to start the service then reregister the service.
“Could not start the Citrix XML Service service on Local Computer.”
“Error 1060: The specified service does not exist as an installed service.”
Unregister the service using the preceding unregistering the XML Service instructions.
Copy the files ctxxmlss.txt, clm.dll, wpnbr.dll to the \Inetpub\Scripts folder. ***(If you are running MetaFrame Presentation Server 3.0 then the clm.dll file is no longer needed).***
If you are running MetaFrame Presentation Server 3.0 or Citrix Presentation Server 4.0, locate the file ctxadmin.dll and copy it to a folder called ctxadmin under \Inetpub\Scripts.
If you are running Citrix Presentation Server 4.0, locate the files ctxconfproxy.dll,ctxsta.dll,ctxsta.config and copy them to \Inetpub\Scripts.
Open the IIS Manager MMC Snap-in.
Expand the Default Web Site.
Right-click the Scripts folder and click Properties.
On the Virtual Directory tab verify that the Execute Permissions field is set to Scripts and Executables.
Open a command prompt window.
Run the iisreset command (this command will restart all IIS related services).
For Citrix Presentation Server 4.0 on Windows 2003, refer to CTX107683 – How to Configure the XML Service to Share with IIS.
For other versions, complete the following steps:
By default when installing IIS 6.0, the virtual scripts folder is not created.
Unregister the service using Unregistering the XML Service procedure.
Navigate to the \Inetpub folder and create a new folder named Scripts.
Open the IIS Manager MMC Snap-in.
Right-click the Default Web Site and select New | Virtual Directory.
Click Next.
Under Alias, type the name Scripts and click Next.
Under Path, type Drive Letter:\Inetpub\Scripts and click Next.
Under Allow the following permissions, ensure that the following are selected:
Read
Run Scripts (such as ASP)
Execute (such as ISAPI applications or CGI)
Click Next and click Finish.
Right-click the Scripts virtual directory and go to Properties.
Under the Virtual Directory tab, ensure that the Execute Permissions, field is set to Scripts and Executables.
From the Directory Security tab, click Edit under Authentication and Access Control and ensure that the Enable anonymous access check-box is selected.
Now copy the files ctxxmlss.txt, clm.dll, wpnbr.dll to the newly created Scripts folder under the Inetpub folder. ***(If you are running MetaFrame Presentation Server 3.0 then the clm.dll file is no longer needed).***
If you are running MetaFrame Presentation Server 3.0, locate the file ctxadmin.dll and copy it to a folder called ctxadmin under \Inetpub\Scripts.
In IIS Admin right-click Web Service Extensions, select Add a new web service extension. Type the name Citrix XML ISAPI in the Extension name field and click Add. In the Add File popup window, type in or browse to the location of the wpnbr.dll file. Then finish by selecting the Set the extension status to allowed check-box.
For MetaFrame Presentation Server 3.0, in IIS Admin right-click Web Service Extensions, select Add a new web service extension. Type the name Citrix XML Administration ISAPI in the Extension name field and click Add. In the Add File popup window, type in or browse to the location of the ctxadmin.dll file. Then finish by selecting the Set the extension status to allowed check-box.
Run the iisreset command (This command restarts all IIS related services).
For XenApp Server 5.0 and 6.0 on Windows Server 2008 and R2, refer to CTX125107 – How to Configure XML Service to Share a Port with IIS on 32 and 64 Bit Versions of Windows Server 2008.
Note: The file ctxxmlss.txt is located in the Program Files\Citrix\System32 folder and the files clm.dll and wpnbr.dll are located in the <SYSTEMROOT>\System32 folder.
With Presentation Server 3.0, all the files required are located in Program Files\Citrix\System32 folder.
CTX125153 - How to Configure XML to Use a Different Port in XenApp 6.0 and 6.5