HTTP Error 400. The request URL is invalid. Error en el tamaño de la url pasada por GET en servicio WCF.

0 comentarios

 En uno de mis trabajos me encontre con un problema que me dio muchos dolores de cabeza.

Tengo un Servicio WCF construido en c# y me surgio la necesidad de enviar datos como parametros de gran tamaño en la llamada a los metodos del servicio. Todo funcionaba hasta entonces.

Con las primeras pruebas me empezo a dar el mensaje: 

HTTP Error 400. The request URL is invalid

Pense que la url estaba mal construida. No fue asi. Busque por internet informacion acerca del problema y todos daban como causa el exceso de longitud de la llamada URL. Casi todas las soluciones pasaban por cambiar parametros del webconfig para el limite de la url, pero nada funcionaba. Seguia con el mismo error.

Realizando pruebas comprobe que el limite realmente estaba en los parametros, si el parametro excedia los 260 caracteres, la llamaba no funcionaba. Si era inferior, la realizaba.

Encontre la solucion  en la configuracion del IIS.

La limitacion esta por defecto en el registro de la Maquina, por lo que hay que actualizar el limite que por defecto esta en 260 caracteres. 

Para realizarlo hay que ir a la siguiente ruta en el registro:

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSetservices/HTTP/Parameters

Hay que buscar el valor UrlSegmentMaxLength. Si no esta hay que crearlo con el tipo REG_DWORD e introducir el valor mas grande: 1000 en hexadecimal o 4096 en decimal.

Despues de hay que reiniciar la maquina o servidor completamente para que el registro guarde los cambios.

Despues de esto ya se podria realizar llamadas sin limitacion de 260 caracteres.

Saludos.

0 comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...
Copyright 2011 INFORMATICUCHO.
Blogger Template by Noct.