Compartir a través de


Solucionar problemas de referencias de servicio

En este tema se enumeran los problemas comunes que pueden producirse al trabajar con referencias de Windows Communication Foundation (WCF) o Servicios de datos de WCF en Visual Studio.

Error al devolver datos de un servicio

Al devolver DataSet o DataTable de 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 MaxReceivedMessageSize para algunos enlaces está establecida en un valor relativamente pequeño para limitar la exposición a los 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 puede buscar un servicio en Mi Solución

Al hacer clic en el botón Detectar del cuadro de diálogo Agregar referencia de servicio, uno o más proyectos de biblioteca de servicios de WCF de la solución no aparecen en la lista de servicios. Esto puede ocurrir si se ha agregado una biblioteca de servicios a la solución pero no se ha compilado aún.

Para corregir este error:

  • En el Explorador de soluciones, haga clic con el botón secundario del mouse en el proyecto de biblioteca de servicios de WCF y haga clic en Generar.

Error al tener acceso a un servicio sobre un escritorio remoto

Cuando un usuario obtiene acceso a un servicio de WCF hospedado en web a través de una conexión a escritorio remoto, y no tiene permisos administrativos, se usa la autenticación NTLM. Si el usuario no tiene permisos administrativos, puede que reciba 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 ficha Opciones de inicio, desactive la casilla Autenticación NTLM.

    Nota

    Debería solamente desactivar la autenticación NTLM para los sitios web que contienen servicios WCF exclusivamente. La seguridad para los servicios WCF se administra a través de la configuración en el archivo web.config. Esto hace que la autenticación NTLM sea innecesaria.

Para obtener más información, vea Solución de problemas de excepciones: System.ServiceModel.Security.MessageSecurityException.

La opción Nivel de acceso de las clases generadas no surte ningún efecto

Es posible que establecer la opción Nivel de acceso de las clases generadas del cuadro de diálogo Configurar referencia de servicio en Interno o Friend no siempre funcione. Aunque la opción parece que está establecida en el cuadro de diálogo, las clases de soporte resultantes se generarán con un nivel de acceso Public.

Ésta es una limitación conocida de determinados tipos, como los serializados mediante XmlSerializer.

Código de servicio de depuración de error

Si se encuentra con el código para un servicio WCF a partir de un código de cliente, es posible que vea un error relacionado con símbolos que faltan. Esto puede ocurrir al mover o quitar un servicio que formaba parte 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 tiene acceso a binarios de servicio actualizados, lo que es especialmente importante para depurar escenarios como cuando se pasa del código de cliente al código de servicio.

Si se quita el proyecto de servicio de la solución, se invalida esta dependencia de compilación explícita. Visual Studio ya no puede garantizar que el proyecto de servicio se vuelva a generar cuando sea necesario.

Para corregir este error, tiene que volver a generar manualmente el proyecto de servicio:

  1. En el menú Herramientas, haga clic en Opciones.

  2. En el cuadro de diálogo Opciones, expanda Proyectos y soluciones y, a continuación, seleccione General.

  3. Asegúrese de que la casilla Mostrar configuraciones de compilación avanzadas esté activada y, a continuación, haga clic en Aceptar.

  4. Cargue el proyecto de servicio WCF. Para obtener más información, vea Cómo: Crear soluciones de varios proyectos.

  5. En el cuadro de diálogo Administrador de configuración, establezca Configuración de soluciones activas 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ú Generar, haga clic en Volver a generar para volver a generar el servicio de proyecto WCF.

Los Servicios de datos de WCF no aparecen en el explorador

Al intentar ver una representación XML de los datos en un Servicio de datos de WCF, Internet Explorer puede interpretar los datos erróneamente como fuente RSS. Debe asegurarse 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, haga clic en Opciones de Internet.

  2. En la ficha Contenido, en la sección Fuentes, haga clic en Configuración.

  3. En el cuadro de diálogo Configuración de fuente, desactive la casilla Activar la vista de lectura de fuentes y, a continuación, haga clic en Aceptar.

  4. Haga clic en Aceptar para cerrar el cuadro de diálogo Opciones de Internet.

Vea también

Conceptos

Servicios de Windows Communication Foundation y servicios de datos WCF en Visual Studio

Otros recursos

Consuming ASMX and WCF Services Sample