Solución de problemas de referencias de Windows Communication Foundation (WCF) o WCF Data Services en Visual Studio
Aplicable a: Visual Studio
En este artículo se enumeran las soluciones a problemas comunes que pueden producirse cuando se trabaja con referencias a Windows Communication Foundation (WCF) o WCF Data Services en Visual Studio.
Si desea actualizar o quitar una referencia de servicio, vea Agregar, actualizar o quitar una referencia de servicio de datos WCF.
Error cuando no se proporciona ninguna dirección de servicio
Al seleccionar el botón Go sin dirección, es posible que vea un mensaje de error que indica "Escriba la dirección de un servicio". Para resolver este problema, identifique la dirección del servicio y introdúzcala.
- Si se trata de un servicio de la solución, puede usar el botón Detectar para buscarlo y seleccionarlo y, a continuación, volver a intentar el botón Ir .
- Si es un servicio hospedado en algún lugar de Internet, agréguelo siguiendo las instrucciones de Agregar una referencia de servicio WCF.
Error al devolver datos de un servicio
Al devolver o DataSet
DataTable
desde un servicio, puede recibir una excepción "Se ha superado la cuota de tamaño máximo para los mensajes entrantes". De forma predeterminada, la propiedad de algunos enlaces se establece en un valor relativamente pequeño para limitar la MaxReceivedMessageSize
exposición a ataques de denegación de servicio. Puede aumentar este valor para evitar la excepción. Para más información, vea MaxReceivedMessageSize.
Para corregir este error:
- En Explorador de soluciones, haga doble clic en el archivo app.config para abrirlo.
- Busque la
MaxReceivedMessageSize
propiedad y cámbiela a un valor mayor.
No se puede encontrar un servicio en mi solución
Al seleccionar el botón Detectar en el cuadro de diálogo Agregar referencias de servicio , uno o varios proyectos de biblioteca de servicios WCF de la solución no aparecen en la lista de servicios. Este problema puede producirse si se ha agregado una biblioteca de servicios a la solución, pero aún no se ha compilado.
Para corregir este error:
- En Explorador de soluciones, haga clic con el botón derecho en el proyecto biblioteca de servicios WCF.
- Seleccione Compilar.
Error al acceder a un servicio a través de un escritorio remoto
Cuando un usuario accede a un servicio WCF hospedado en web a través de una conexión de escritorio remoto y el usuario no tiene permisos administrativos, se usa la autenticación NTLM. Si el usuario no tiene permisos administrativos, el usuario puede recibir el siguiente mensaje de error: "La solicitud HTTP no está autorizada con el esquema de autenticación de cliente 'Anónimo'. El encabezado de autenticación recibido del servidor era "NTLM".
Para corregir este error:
- En el proyecto del sitio web, abra las páginas Propiedades .
- En la pestaña Opciones de inicio , desactive la casilla Autenticación NTLM .
Nota:
Debe desactivar la autenticación NTLM solo para sitios web que contengan exclusivamente servicios WCF. La seguridad de los servicios WCF se administra mediante la configuración del archivo web.config . Esto hace que la autenticación NTLM sea innecesaria.
El nivel de acceso para la configuración de clases generadas no tiene ningún efecto
Es posible que no siempre funcione establecer la opción Nivel de acceso para clases generadas en el cuadro de diálogo Configurar referencias de servicio en Interno o Amigo . Aunque la opción parece estar establecida en el cuadro de diálogo, las clases de soporte técnico resultantes se generan con un nivel de acceso de Public
. Se trata de una limitación conocida de determinados tipos, como los serializados mediante XmlSerializer.
Código de servicio de depuración de errores
Al entrar en el código de un servicio WCF desde el código de cliente, es posible que reciba un error relacionado con los símbolos que faltan. Puede producirse cuando un servicio que formaba parte de la solución se movió o quitó de la solución.
Al agregar por primera vez una referencia a un servicio WCF que forma parte de la solución actual, se agrega una dependencia de compilación explícita entre el proyecto de servicio y el proyecto de cliente de servicio. Esto garantiza que el cliente siempre tenga acceso a archivos binarios de servicio actualizados, lo que es especialmente importante para escenarios de depuración, como pasar del código de cliente al código de servicio.
Si el proyecto de servicio se quita de la solución, esta dependencia de compilación explícita se invalida. Visual Studio ya no puede garantizar que el proyecto de servicio se vuelva a generar según sea necesario.
Para corregir este error, recompile manualmente el proyecto de servicio:
- En el menú Herramientas, seleccione Opciones.
- En el cuadro de diálogo Opciones , expanda Proyectos y soluciones y, a continuación, seleccione General.
- Asegúrese de que la casilla Mostrar configuraciones de compilación avanzadas esté activada y, a continuación, seleccione Aceptar.
- Cargue el proyecto de servicio WCF.
- En el cuadro de diálogo Configuration Manager, establezca la configuración de la solución activa en Depurar. Para obtener más información, vea Cómo: Crear y editar configuraciones.
- En Explorador de soluciones, seleccione el proyecto de servicio WCF.
- En el menú Compilar , seleccione Recompilar para volver a generar el proyecto de servicio WCF.
WCF Data Services no se muestran en el explorador
Cuando intenta ver una representación XML de datos en un servicio de datos WCF, Internet Explorer puede interpretar erróneamente los datos como una fuente RSS. Asegúrese de que la opción para mostrar fuentes RSS está deshabilitada.
Para corregir este error, deshabilite las fuentes RSS:
- En Internet Explorer, en el menú Herramientas, seleccione Opciones de Internet.
- En la pestaña Contenido , en la sección Fuentes , seleccione Configuración.
- En el cuadro de diálogo Configuración de fuente , desactive la casilla Activar vista de lectura de fuentes y, a continuación, seleccione Aceptar.
- Seleccione Aceptar para cerrar el cuadro de diálogo Opciones de Internet.