¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Procedimiento: Hospedar un servicio en Azure que acceda a Service Bus

Procedimiento: Hospedar un servicio en Azure que acceda a Service Bus

Actualizado: junio de 2015

La creación de una aplicación de servicio que se ejecuta en Microsoft Azure sigue los patrones de programación tanto para Azure como para una aplicación de CmdLets tradicional: define e implementa el contrato de servicio, configura el extremo, crea las credenciales y, a continuación, inicia el host. Una vez haya acabado, detenga el host. Sin embargo, tenga en cuenta que hay dos problemas únicos cuando crea un servicio en Azure:

  • Azure no almacena la información de CmdLets y Control de acceso en el archivo Machine.config

    Dado que Azure no instala el SDK de Azure, el archivo Machine.config de un equipo con Azure no tiene información acerca de los enlaces o extremos de CmdLets. Como se ha indicado anteriormente, las restricciones de seguridad deAzure evitan que modifique el archivo Machine.config de Azure. Por tanto, hay dos opciones para hacer que la información de configuración de CmdLets y Control de acceso estén disponibles para sus aplicaciones de CmdLets.

    1. La solución recomendada es usar las API de CmdLets para configurar mediante programación su aplicación. Por ejemplo, aunque podría almacenar la información de la contraseña y del nombre en el archivo App.config, establecería mediante programación las configuraciones de enlace de retransmisión. Para obtener más información sobre establecer configuración mediante programación, vea Configuración de un servicio de WCF para registrar con el Bus de servicio.

    2. La segunda solución es modificar manualmente el archivo App.config para su aplicación agregando toda la información relevante. Una vez hecho esto, puede usar el archivo App.config para configurar enlaces y extremos. Para ello, puede ver el archivo Machine.config en un archivo que tenga el SDK de Azure instalado, encontrar toda la información de configuración relacionada con Azure y copiarla en su archivo App.config de la aplicación. Aunque esto le permite usar el archivo App.config en el servicio de host, será difícil probar su código: puede encontrar problemas de duplicación con el archivo Machine.config del equipo de prueba local, que ya tendrá el SDK de Azure instalado. Por tanto, se recomienda el uso de la opción anterior, y el establecimiento de todo mediante programación.

  • El Service Bus de CmdLets debe tener autorización de Plena confianza para ejecutarse en Azure

    Como con todas las demás aplicaciones de CmdLets, debe asegurarse de que el sistema operativo se está ejecutando con autorización de plena confianza. Esto se puede establecer en el archivo ServiceDefinition.csdef del proyecto Azure, con el siguiente procedimiento.

  1. En el Explorador de soluciones, en el nodo WorkerRole o WebRole (en función de donde se encuentre el código), agregue el ensamblado Microsoft.ServiceBus.dll a su proyecto de Azure como referencia.

    Este paso es el proceso estándar para agregar una referencia a un ensamblado.

  2. En la carpeta Referencia, haga clic con el botón secundario en Microsoft.ServiceBus. A continuación, haga clic en Propiedades.

  3. En el diálogo Propiedades, establezca Copia local en Verdadero.

    Al hacerlo se asegura de que el ensamblado de Microsoft.ServiceBus.dll se copia en la ruta de acceso \bin local y de que está disponible para su aplicación cuando se ejecuta en Azure.

  1. En el archivo ServiceDefinition.csdef de su proyecto, establezca el campo enableNativeCodeExecution en "true", como se muestra en el siguiente código. Reemplace "ApplicationNameHere" con el nombre de la aplicación:

    <?xml version="1.0" encoding="utf-8"?>
    <ServiceDefinition name="ApplicationNameHere" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
      <WebRole name="WebRole" enableNativeCodeExecution="true">
        <InputEndpoints>
          <!-- Must use port 80 for http and port 443 for https when running in the cloud -->
          <InputEndpoint name="HttpIn" protocol="http" port="80" />
        </InputEndpoints>
      </WebRole>
      <WorkerRole name="WorkerRole" enableNativeCodeExecution="true">
      </WorkerRole>
    </ServiceDefinition>
    
    

Mostrar:
© 2015 Microsoft