Users with a plus sign ("+") in their username may be unable to display reports on-screen.


As a user with a username of test+admin, try running a report to the screen.
A 404 error message is displayed

404 error

Error text:

HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

Requested URL
http://crmserver:80/crm72/Temp/Temporary Report Files/test+admin-20140106112905498/mainframe.htm

Physical Path
C:\Program Files (x86)\Sage\CRM\CRM72\WWWRoot\Temp\Temporary Report Files\test+admin-20140106112905498\mainframe.htm

You can see that the error message is referencing a physical path on the CRM server. This path exists, but with a space instead of a plus sign. The plus sign in the URL is not being escaped.

Workaround / Resolution:

There are two possible workarounds:

1: Don’t use a plus sign in usernames.
2: Set allowDoubleEscaping to true by runnign the following from a command line:

appcmd set config /section:requestfiltering /allowdoubleescaping:true

You may need to cd to Windows\System32\inetsrv\ if appcmd's location isn’t in your PATH environment variable.

The following should also be added to the rewrite rules in the CRM virtual directory’s web.config:

        <rule name="RewriteUserFriendlyURL1" stopProcessing="false">
            <match url="\+" />
                <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
            <action type="Rewrite" url="{UrlDecode:{REQUEST_URI}}" />
    … more rule types …

More info:

This has been raised as a bug to Development. The issue has been introduced in IIS 7.5 as part of a security update by Microsoft.