Error: “Specified value has invalid Control characters.Parameter name: value” al ejecutar un informe en Reporting Services

Si os encontráis con este mensaje de error cuando intentáis ejecutar un informe desde a Report Manager (/reports">https://<servername>/reports) aquí tenéis una posible explicación al problema.

Si los síntomas que detectáis son los siguientes:

* Este error lo reproducís sólo cuando accedéis desde una determinada máquina de trabajo.
* Los usuarios afectados pueden acceder correctamente al informe desde otra máquina.

entonces es muy posible que el problema lo esté causando una clave de registro en la máquina afectada que contiene un valor con un carácter ilegal. Aquí os dejo más detalles y la solución a este problema.

Cuando instalas programas de terceros o instalas determinados componentes de Windows como Microsoft.NET Framework o Windows XP SP2, se añaden tokens a la cadena de registro del User Agent. Como este registro se crea para la versión concreta del navegador que estés utilizando en el momento de la instalación, aunque hayas actualizado la versión de tu navegador esta clave de registro continúa existiendo.

Nos centramos en la clave de registro creada para Internet Explorer (más información en https://msdn.microsoft.com/es-es/library/ms537503(v=vs.85).aspx )

Los tokens que los programas necesitan añadir a la cadena de User Agent se añaden a la siguiente clave de registro.
HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER)
SOFTWARE
Microsoft
Windows
CurrentVersion
Internet Settings
(Internet Explorer version)
User Agent
Pre Platform
Token = Value
Post Platform
Token = Value

 

Si los valores que se añaden contienen algún carácter ilegal, como la letra Ñ en nuestro abecedario o caracteres cirílicos usados en otros alfabetos, el siguiente error es devuelto al usuario:
"Specified value has invalid Control characters.Parameter name: value"

Para solucionar este problema, desde la máquina que presenta este error, accede a la consola de registro (run --> regedit) y busca la clave:
HKCU (o HKLM)\Software\Microsoft\Windows\CurrentVersion\Internet Settings\(IE version)\User Agent\Post Platform (o Pre Platform)

Si los valores de estos tokens contienen un carácter ilegal (recordemos un ejemplo, la letra Ñ)  y la versión de IE es anterior a la que actualmente usas sigue los siguiente pasos:

1. Haz un backup del registro (siempre recomendado antes de realizar cualquier cambio)
https://support.microsoft.com/kb/322756/

2. Elimina las entradas que contienen el carácter ilegal.

4. Accede de nuevo a reporting services y comprueba que el problema se ha resuelto.

 

Al ser una clave de registro creada por una versión antigua de Internet Explorer este cambio no tiene impacto negativo en la funcionalidad de la máquina.

Si detectas cualquier problema tras el cambio restaura el backup que has hecho del registro.

 

Información adicional sobre el agente de usuario

User Agent es usado para identificar la aplicación (normalmente un buscador cliente) que está pidiendo la información al servidor.
Cuando accedes a una página web, el buscador desde el que accedes manda la cadena de user agent al servidor que aloja la web que estás visitando. Esta cadena de conexión contiene tokens que varían según el navegador utilizado. Generalmente estos tokens proveen la siguiente información: indica el buscador que utilizas, la versión del buscador y detalles de sobre tu sistema como el sistema operativo y la versión. El servidor web usa esta información para proveer el contenido que se adapta a tu buscador.

 

Beatriz Sanagustín -

Ingeniero de soporte de Reporting Services