Tuesday 10 January 2012

Explaining and Changing the Citrix XML Service Port

The Citrix XML Service was introduced with MetaFrame 1.8 Service Pack 2 and a Feature Release 1 license needed to be installed. MetaFrame XP and later incorporates the Citrix XML Service as a standard feature.
When MetaFrame 1.8 Service Pack 2 or later is installed and the server rebooted, the Citrix XML Service binaries are placed on the system whether the Citrix XML Service was or was not installed. All that must be done to complete the Citrix XML Service installation is to register the XML Service itself by running the ctxxmlss command.
Unlike MetaFrame XP or later, MetaFrame 1.8 does not allow for the sharing of port 80 with IIS.
CTXXMLSS.EXE Command Line Usage

The command-line syntax below 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 look 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! This procedure requires you to edit the registry. Using Registry Editor incorrectly can cause serious problems that might require you to reinstall your operating system. Citrix cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk. Back up the registry before you edit it.
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, simply rename or delete the Wpnbr.dll file.
Lastly, once 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.
Unregistering the XML Service
1.  Open a command Prompt window.
2.  Run ctxxmlss /u (This command unregisters the Citrix XML Service and marks it for deletion).
Registering the XML Service on a port other than sharing with IIS
1.  Unregister the service using the previous instructions.
2.  Open a command Prompt window.
3.  Run ctxxmlss /r[Port Number] (Notice that there is no space between the switch “/r” and the port number.
4.  Open the service control manager and manually start the Citrix XML Service.
Note: During the unregister/register process you might see the below error message. There is no need to reboot the server. Just 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.
Registering the XML Service to share the port with IIS 5.0
1.  Unregister the service using the previous instructions.
2.  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).***
3.     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.
4.     If you are running Citrix Presentation Server 4.0, locate the files ctxconfproxy.dll,ctxsta.dll,ctxsta.config and copy them to \Inetpub\Scripts.
5.     Open the IIS Manager MMC Snap-in.
6.     Expand the Default Web Site.
7.     Right-click the Scripts folder and click Properties.
8.     On the Virtual Directory tab make sure that the Execute Permissions field is set to Scripts and Executables.
9.     Open a command prompt window.
10.   Run the iisreset command (be aware that this command will restart all IIS-related services).
Registering the XML Service to share the port with IIS 6.0
For Citrix Presentation Server 4.0 on Windows 2003, refer to CTX107683 – How to Configure the XML Service to Share with IIS.
Otherwise, follow these steps:
By default when installing IIS 6.0, the virtual Scripts Folder is not created.
1.     Unregister the service using the previous instructions.
2.     Navigate to the \Inetpub folder and create a new folder named Scripts.
3.     Open the IIS Manager MMC Snap-in.
4.     Right-click the Default Web Site and select New | Virtual Directory…
5.     Click Next.
6.     Under Alias: type the name Scripts and click Next.
7.     Under Path: type Drive Letter:\Inetpub\Scripts and click Next.
8.     Under Allow the following permissions: make sure that the following are selected:
a. Readb. Run Scripts (such as ASP)c. Execute (such as ISAPI applications or CGI)
9.      Click Next and click Finish.
10.   Right-click the Scripts virtual directory and go to Properties.
11.   Under the Virtual Directory tab make sure that the Execute Permissions: field is set to Scripts and Executables.
12.   Under the Directory Security tab, click Edit… under Authentication and Access Control and make sure that the Enable anonymous access check box is selected.
13.   Now copy the files ctxxmlss.txt, clm.dll, wpnbr.dll to the newly create Scripts folder under the Inetpub folder. ***(If you are running MetaFrame Presentation Server 3.0 then the clm.dll file is no longer needed).***
14.   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.
15.   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.
16.   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.
17.   Run the iisreset command (be aware that this command restarts all IIS-related services).
Registering the XML Service to share the port with IIS 7.0
For XenApp Server 5.0 and 6.0 on Windows Server 2008 and R2, refer to CTX125107 – Configuring 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.

0 comments:

Post a Comment