Symptoms

End customer with IIS 6 webspace disabled support of all scripting languages (perl, php, APS, ASP.net) for his site from CCP > Websites > site name > Website configuration.

When he later tries to enable support for some of the scripting languages, the following task fails:

Task name   Change ISAPI extensions for virtual directory 'Root' (dir_id=9098) of virtual web server 11161 on host 'winweb.hosting.local' (host_id=1063).
Last execution output:
Destination host 'winweb.hosting.local' (#1063), IP '10.10.10.10' : Provisioning request failed. The resulting XML contains text or CDATA '.idc,C:\WINDOWS\system32\inetsrv\httpodbc.dll,5,GET,POST' at top element which is not allowed for legacy reasons.
Type: Parallels.Wpe.Utils.WpeException.

Cause

According to documentation, WPE officially does not support provisioning of IIS 6 webspaces - MPS should be used for this and it is possible to have MPS and Windows Provisioning Engine co-exist in same domain. In this case OA will use WPE for services that are provisioned via WPE and will use MPS for legacy services.

However if there is no MPS service available (for example MPS engine on MPS server was stopped and status of MPSEngine service in PCP > Infrastructure > Service is "Inactive") OA will be forced to use WPE for provisioning of IIS 6 webspaces/websites, which may lead to different issues.

The issue occurs when end user with IIS 6 website disables all scripting languages support from CCP > Websites > site name > Website configuration.

OA removes handler mappings for these scripting languages from IIS site configuration and only one handler mapping is left: mapping for IIS database connector - it is always enabled by default.

If after that customer tries to update website scripting settings, OA will try to add handler mapping, but will fail.

Resolution

There are two choices available:

  1. Leave things as is (use case that leads to this problem is rather rare) and if problem appears for some site - apply workaround: find site for which task fails in IIS > right click > Properties > Home directory > Configuration > Mappings and remove mapping for .idc. Then rerun task - it should add back mapping for .idc and mappings for scripting languages end user has enabled and then complete successfully.

  2. Start MPS service on MPS server, wait 5-10 minutes until OA detects that it is running, rerun task - OA will use MPS for provisioning this time and task should succeed.

Internal content