Compartir vía


Solución de problemas de referencias de Windows Communication Foundation (WCF) o WCF Data Services en Visual Studio

Se aplica a: Visual Studio

En este artículo se enumeran las soluciones a problemas comunes que pueden producirse al trabajar con referencias a Windows Communication Foundation (WCF) o Servicios de datos de WCF en Visual Studio.

Si desea actualizar o quitar una referencia de servicio, consulte 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 Ir 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 escríbala.

  • Si es un servicio de la solución, puede usar el botón Detectar para buscarlo y seleccionarlo y, después, volver a intentar el botón Ir.
  • Si es un servicio hospedado en algún lugar de Internet, agréguelo según las instrucciones de Adición de una referencia de servicio WCF.

Error al devolver datos de un servicio

Al devolver DataSet o DataTable desde un servicio, se puede iniciar una excepción "Se ha superado la cuota de tamaño máximo de los mensajes entrantes". De manera predeterminada, la propiedad MaxReceivedMessageSize de algunos enlaces se establece en un valor relativamente pequeño para limitar la exposición a ataques por denegación de servicio. Puede aumentar este valor para evitar la excepción. Para obtener más información, vea MaxReceivedMessageSize.

Para corregir este error:

  1. En el Explorador de soluciones, haga doble clic en el archivo app.config para abrirlo.
  2. Busque la propiedad MaxReceivedMessageSize y cámbiela a un valor mayor.

No se encuentra un servicio en mi solución

Al seleccionar el botón Detectar del cuadro de diálogo Agregar referencias de servicio, uno o varios proyectos de la 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:

  1. En Explorador de soluciones, haga clic con el botón derecho en el proyecto Biblioteca de servicios WCF.
  2. Seleccione Compilar.

Error al acceder a un servicio desde 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:

  1. En el proyecto de sitio web, abra las páginas Propiedades.
  2. 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 valor Nivel de acceso para las clases generadas no tiene ningún efecto

Es posible que no siempre funcione el establecimiento de la opción Nivel de acceso para las clases generadas del cuadro de diálogo Configurar referencias de servicio en Interno o Amigo. Aunque la opción parece establecerse en el cuadro de diálogo, las clases complementarias 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.

Error de depuración del código del servicio

Al depurar paso a paso por instrucciones el código de un servicio WCF desde el código de cliente, es posible que reciba un error relacionado con símbolos que faltan. Puede ocurrir 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 accede a los 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 recompile según sea necesario.

Para corregir este error, recompile manualmente el proyecto de servicio:

  1. En el menú Herramientas, seleccione Opciones.
  2. En el cuadro de diálogo Opciones, expanda Proyectos y soluciones y, después, seleccione General.
  3. Asegúrese de que la casilla Mostrar configuraciones de compilación avanzadas esté activada y, a continuación, seleccione Aceptar.
  4. Cargue el proyecto de servicio WCF.
  5. En el cuadro de diálogo Administrador de configuración, establezca Configuración de la solución activa en Depurar. Para obtener más información, vea Cómo: crear y editar configuraciones.
  6. En el Explorador de soluciones, seleccione el proyecto de servicio WCF.
  7. En el menú Compilar , seleccione Recompilar para recompilar el proyecto de servicio WCF.

Servicios de datos de WCF no se muestran en el explorador

Cuando intenta ver una representación XML de datos en un servicio de datos WCF, Internet Explorer puede malinterpretar los datos como una fuente RSS. Asegúrese de que la opción para mostrar las fuentes RSS está deshabilitada.

Para corregir este error, deshabilite las fuentes RSS:

  1. En Internet Explorer, en el menú Herramientas , seleccione Opciones de Internet.
  2. En la pestaña Contenido , en la sección Fuentes , seleccione Configuración.
  3. 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.
  4. Seleccione Aceptar para cerrar el cuadro de diálogo Opciones de Internet.