Compilación de los ejemplos de Windows Communication Foundation

Los ejemplos de Windows Communication Foundation (WCF) se pueden compilar en el IDE de Visual Studio o con el comando msbuild en la línea de comandos. Los dos procedimientos se describen en este artículo.

Nota

Antes de compilar o ejecutar cualquiera de los ejemplos de WCF, asegúrese de que ha realizado el Procedimiento de instalación única para los ejemplos de Windows Communication Foundation.

Para compilar el ejemplo desde un símbolo del sistema

  1. Abra el Símbolo del sistema para desarrolladores de Visual Studio y vaya al subdirectorio específico del idioma en la ubicación del directorio donde haya instalado el ejemplo.

  2. Escriba msbuild en la línea de comandos. Los archivos de programa del cliente se compilan en client\bin y los archivos de programa del servicio se compilan en service\bin. Si Internet Information Services (IIS) hospeda el servicio, los archivos de programa del servicio también se copian en el directorio servicemodelsamples y su subdirectorio \bin.

Nota

Debe establecer las listas ACL en %systemdrive%\inetpub\wwwroot para otorgar permisos de modificación a la cuenta con la que se está ejecutando. De lo contrario, se producirán errores en eventos posteriores a la compilación. Como alternativa, puede dejar las ACL tal como están y ejecutar el símbolo del sistema del SDK como administrador.

Para compilar el ejemplo con Visual Studio

  1. En el menú Archivo de Visual Studio, seleccione Abrir>Proyecto/Solución. Vaya al subdirectorio específico del idioma en el directorio donde instaló el ejemplo y haga doble clic en el icono del archivo .sln para abrir la solución en Visual Studio.

  2. En el menú Compilar, seleccione Recompilar solución.

    Los archivos de programa del cliente se compilan en client\bin y los archivos de programa del servicio se compilan en service\bin. Si el servicio está hospedado en IIS, los archivos de programa del servicio también se copian en el directorio servicemodelsamples y su subdirectorio \bin.

Nota

Debe establecer las ACL en %systemdrive%\inetpub\wwwroot para otorgar permisos de modificación en la cuenta bajo la cual se está ejecutando. De lo contrario, se producirán errores en eventos posteriores a la compilación. De manera alternativa, puede dejar las ACL tal y como están y ejecutar el símbolo de sistema de SDK o Visual Studio como administrador. Algunas acciones de Visual Studio (como asociar un depurador al proceso de trabajo de ASP.NET) también requieren privilegios de administrador.

Archivos de instalación por lotes y scripts

Los archivos por lotes Setup.exe y Cleanup.exe y los scripts deben ejecutarse desde el Símbolo del sistema para desarrolladores de Visual Studio. Hay varios archivos de limpieza e instalación que realizan tareas que requieren privilegios administrativos y deberían iniciarse con privilegios de administrador.

Información de seguridad importante sobre los puntos de conexión de metadatos

Para evitar la divulgación involuntaria de metadatos del servicio potencialmente confidenciales, la configuración predeterminada para los servicios de Windows Communication Foundation (WCF) deshabilita la publicación de metadatos. Este comportamiento es seguro de forma predeterminada, pero también quiere decir que no puede usar una herramienta de importación de metadatos (como Svcutil.exe) para compilar el código de cliente necesario para llamar al servicio, a menos que el comportamiento de publicación de metadatos del servicio se habilite explícitamente en la configuración. Para que los experimentos con los ejemplos sean más sencillos, casi todos los ejemplos exponen un punto de conexión de publicación de metadatos no seguro. Estos puntos de conexión pueden estar disponibles para los consumidores anónimos no autenticados y debe tenerse cuidado antes de implementarlos para garantizar que la revelación pública de metadatos de un servicio sea la adecuada. Para obtener más información sobre los metadatos del servicio de publicación, consulte el ejemplo Comportamiento de publicación de metadatos. Consulte Punto de conexión personalizado de metadatos seguro para ver un ejemplo que protege el punto de conexión de metadatos.

Control de excepciones.

En general, estos ejemplos no incluyen el control de excepciones para mantener el código centrado en el asunto del ejemplo. Para obtener más información sobre el control de excepciones, consulte el ejemplo Excepciones esperadas.

Regenerar clientes y configuración con Svcutil

Puede usar la utilidad de metadatos de ServiceModel (Svcutil.exe) para regenerar el código del cliente y la configuración de la mayoría de los ejemplos. Algunos ejemplos requieren una configuración editada manualmente. Por ejemplo, si utiliza Svcutil.exe para regenerar la configuración para obtener un ejemplo que utiliza las credenciales del certificado de cliente, debe especificar manualmente las credenciales previamente configuradas. Algunos ejemplos utilizan las opciones Svcutil.exe concretas para afectar al código generado, estas opciones se especifican en los temas de ejemplo concretos.

Para regenerar los archivos de configuración y cliente

  1. Abra un símbolo del sistema de SDK y desplácese hasta el subdirectorio específico del idioma debajo de la ubicación del directorio donde haya instalado el ejemplo.

  2. Si el servicio es un tipo hospedado en web, utilice el comando siguiente.

    svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost/servicemodelsamples/service.svc/mex /out:generatedClient.cs
    

    Si el servicio es un tipo autohospedado utilice el comando siguiente.

    svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost:8000/servicemodelsamples/service.svc/mex /out:generatedClient.cs
    

    Reemplace http://localhost:8000/ServiceModelSamples/service.svc/mex por la dirección del punto de conexión MEX del servicio autohospedado.

    Para generar el cliente en un tipo de Visual Basic, utilice el siguiente comando.

    svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost/servicemodelsamples/service.svc/mex /l:vb /out:generatedClient.vb
    

    Si el servicio es un tipo autohospedado utilice el comando siguiente.

    svcutil.exe /n:"http://Microsoft.ServiceModel.Samples,Microsoft.ServiceModel.Samples" http://localhost:8000/servicemodelsamples/service.svc/mex /l:vb /out:generatedClient.vb
    

    Nota

    Para omitir la generación de la configuración del cliente, agregue la opción /noConfig.

Consulte también