Compartir a través de


Limitaciones de la depuración de WCF

Hay tres maneras de empezar a depurar un servicio WCF:

  • Está depurando un proceso de cliente que llama a un servicio. El depurador entra en el servicio. El servicio no tiene que estar en la misma solución que la aplicación cliente.

  • Estás depurando un proceso de cliente que realiza una solicitud a un servicio. El servicio debe formar parte de la solución.

  • Use Asociar al proceso para asociar a un servicio que se está ejecutando actualmente. La depuración comienza dentro del servicio.

En este tema se describen las limitaciones de estos escenarios.

Limitaciones para incorporarse a un servicio

Para entrar en un servicio desde una aplicación cliente a la que estás depurando, deben cumplirse los siguientes requisitos:

  • El cliente debe llamar al servicio mediante un objeto de cliente sincrónico.

  • La operación del contrato no puede ser unidireccional.

  • Si el servidor es asincrónico, no puede ver la pila de llamadas completa mientras ejecuta código dentro del servicio.

  • La depuración debe estar habilitada con el código siguiente en el archivo app.config o Web.config:

    <system.web>
      <compilation debug="true" />
    </system.web>
    

    Este código solo tiene que agregarse una vez. Puede agregar este código editando el archivo .config o adjuntando al servicio mediante Asociar al proceso. Cuando se usa Asociar al proceso en un servicio, el código de depuración se agrega automáticamente al archivo .config. Después, puede depurar y examinar paso a paso el servicio sin tener que editar el archivo .config.

Limitaciones al Salir Temporalmente de un Servicio

Salir de un servicio y volver al cliente tiene las mismas limitaciones descritas para entrar en un servicio. Además, el depurador debe conectarse al cliente. Si está depurando un cliente y pasa a un servicio, el depurador permanece asociado al servicio. Esto es cierto si ha iniciado el cliente mediante Iniciar depuración o adjuntarlo al cliente mediante Asociar al proceso. Si comenzó la depuración adjuntándose al servicio, el depurador todavía no está conectado al cliente. En ese caso, si tiene que salir del servicio y volver al cliente, primero debe usar Adjuntar al proceso para conectarse al cliente manualmente.

Limitaciones de la asociación automática a un servicio

La asociación automática a un servicio tiene las siguientes limitaciones:

  • El servicio debe formar parte de la solución de Visual Studio que está depurando.

  • El servicio debe hospedarse. Puede formar parte de un proyecto de sitio web (sistema de archivos y HTTP), proyecto de aplicación web (sistema de archivos y HTTP) o proyecto de biblioteca de servicios WCF. Los proyectos de biblioteca de servicios de WCF pueden ser bibliotecas de servicio o bibliotecas de servicio de flujo de trabajo.

  • El servicio debe invocarse desde un cliente WCF.

  • La depuración debe estar habilitada con el código siguiente en el archivo app.config o Web.config:

    <system.web>
      <compilation debug="true" />
    <system.web>
    

Autoalojamiento

Un servicio autohospedado es un servicio WCF que no se ejecuta dentro de IIS, el host del servicio WCF o el servidor de desarrollo de ASP.NET. Para obtener información sobre cómo depurar un servicio autohospedado, vea How to: Debug a Self-Hosted WCF Service.

Si ve el mensaje de error "No se puede iniciar sesión automáticamente en el servidor". Repare la instalación de Visual Studio para intentar resolver el problema. Esto puede ocurrir si instala Visual Studio antes de instalar ASP.NET.