Este tema aún no ha recibido ninguna valoración - Valorar este tema

Solución de problemas del Service Bus

En las siguientes secciones se describen problemas que pueden tener lugar al escribir aplicaciones para el Service Bus de Windows Azure, así como el modo de resolverlos.

Solución de problemas de las aplicaciones de Windows Azure

En las siguientes secciones se describe la solución de problemas de las aplicaciones de Windows Azure.

La aplicación se ejecuta en el entramado de desarrollo, pero se bloquea cuando se implementa

Síntoma

Una aplicación de Service Bus se ejecuta sin errores en el entramado de desarrollo, pero se bloquea una vez implementada en los servidores de Windows Azure.

Causa

Los ensamblados de Service Bus en la actualidad no están integrados en la plataforma Windows Azure. En consecuencia, la aplicación está tratando de obtener acceso a un ensamblado que no existe en el servidor.

Resolución

Agregue el ensamblado de Service Bus a su paquete de implementación (por ejemplo, defina el ensamblado en Copia local). Tenga en cuenta que, como resultado, deberá actualizar los ensamblados manualmente.

Los extremos se pueden definir mediante programación, pero fallan cuando se definen en el archivo de configuración

Síntoma

Una aplicación funciona cuando los extremos se definen mediante programación, pero falla cuando estos mismos ajustes de configuración se almacenan en el archivo App.config asociado. La aplicación genera el siguiente error:

System.Configuration.ConfigurationErrorsException: No se encuentra la extensión de enlace de configuración 'system.serviceModel/bindings/netTcpRelayBinding'. Compruebe que la extensión de enlace está registrada adecuadamente en system.serviceModel/extensions/bindingExtensions y que está escrita correctamente.

Causa

Los ensamblados de Service Bus en la actualidad no están integrados en la plataforma Windows Azure. En el equipo local, si tiene instalado el SDK de Windows Azure, se modificará su archivo Machine.config para agregar varias extensiones Windows Communication Foundation (WCF), tales como NetTcpRelayBinding. De este modo, la aplicación podrá encontrar la información relevante en las diferentes secciones de dicho archivo, como la sección netTcpRelayBinding. Esto no sucede en la plataforma Windows Azure, por lo que la aplicación no encuentra la información correspondiente.

Resolución

Para que su configuración funcione con Windows Azure, copie las extensiones del archivo Machine.config local en su archivo App.config. En caso contrario, no se reconocerán las etiquetas tales como netTcpRelayBinding. No obstante, si lo hace, su aplicación no se ejecutará localmente por haber extensiones duplicadas. En consecuencia, deberá conservar dos versiones del archivo App.config; una localmente y una para Windows Azure. Se recomienda que realice esta tarea en concreto mediante programación.

Problemas de conectividad

Los siguientes temas de solución de problemas contienen información sobre el modo de conectar con el Service Bus. Si no encuentra la solución más adelante en esta sección, puede considerar alguna de las siguientes posibilidades:

  • Ejecute un seguimiento de red, pues es posible que la red esté inactiva. El uso de Monitor de red para determinar el estado de la red podría ayudarle a depurar su problema.

La aplicación cliente no encuentra el extremo de destino

Síntoma

Cuando intenta conectarse al Service Bus con una aplicación cliente, obtiene el siguiente error:

Excepción no controlada: System.ServiceModel.EndpointNotFoundException: no se encontró el extremo. Asegúrese de que puede conectarse a Internet mediante el puerto HTTP 80 y el puerto TCP 808.

Causa

Existen diversas causas posibles para este error.

Resolución

  • Compruebe si el host se encuentra en ejecución. Si no es así, no hay ningún extremo con el que conectarse. Puede ejecutar el servicio usando uno de los dos procedimientos que se muestran aquí:

    1. Modo de depuración: haga clic con el botón secundario en el proyecto de servicio en el Explorador de soluciones de Visual Studio y haga clic en Depurar. A continuación, haga clic en Iniciar nueva instancia. Una vez que se inicie el servicio, repita este procedimiento para el cliente. Tenga en cuenta que puede depurar el cliente aunque el servicio ya se encuentre en ejecución.

    2. Fuera del modo de depuración: configure su proyecto de servicio como proyecto inicial. Desde el menú Depurar, haga clic en Iniciar sin depurar. Al hacerlo, aunque se ejecutará la aplicación de servicio, no se verá afectado Visual Studio. Una vez se inicie el servicio, defina el proyecto del cliente como proyecto inicial y ejecútelo.

  • Asegúrese de que ha configurado la propiedad Copia local para el ensamblado Microsoft.ServiceBus.dll (en Visual Studio) como true. Los servidores de nube no tienen instalado el SDK de Windows Azure. En consecuencia, deberá incluir el ensamblado con su paquete. Sin él, su rol de trabajo no funcionará correctamente.

  • Confirme que puede conectarse a Internet mediante el puerto HTTP 80 y el puerto TCP 808.

El cliente no puede finalizar la negociación de seguridad en el tiempo de espera configurado

Síntoma

La aplicación no puede conectarse al Service Bus y devuelve el siguiente mensaje de error:

"El cliente no puede finalizar la negociación de seguridad en el tiempo de espera configurado (00:01:00). La sección de negociación actual es 1 (00:00:59.9429968)."

Causa

Las credenciales de autenticación podrían estar mal configuradas.

Resolución

Compruebe si está autenticando al cliente. Específicamente, compruebe si ha configurado RelayClientAuthenticationType en None. De manera predeterminada, el valor es RelayAccessToken, lo que requiere que proporcione una notificación de autenticación, tal como un secreto compartido. No obstante, si configura manualmente el valor en None, el cliente no debe proporcionar ninguna autenticación.

Si no ha configurado el tipo de autenticación, probablemente tenga RelayClientAuthenticationType con el valor predeterminado de RelayAccessToken. Si es así, compruebe si su notificación de autenticación se ha especificado correctamente. Para obtener más información, vea Protección y autenticación de una conexión de Service Bus.

La aplicación no puede verificar la seguridad cuando se conecta con el Service Bus

Síntoma

Al tratar de conectarse con el Service Bus, recibe el siguiente error:

"Error al comprobar la seguridad del mensaje"

Causa

Una posible causa de este error es que la hora UTC del equipo local vaya adelantada de la hora UTC en el servidor del Service Bus. Por ejemplo, puede que la marca de tiempo UTC local sea 8:06, mientras que la del servidor sea 8:05. El servidor considera que esto es una marca de hora no válida y genera el mensaje de error mencionado en la sección "Síntomas".

Resolución

Confirme que es correcta la hora UTC para el equipo local. Si es necesario, atrase manualmente el reloj unos minutos. El Service Bus no considera como una infracción de seguridad a los mensajes ligeramente anteriores, solo a aquellos que parezcan provenir del futuro.

La fuente ATOM no muestra el servicio

Síntoma

No puede localizar un servicio en la fuente ATOM, aunque tiene la certeza de que el servicio funciona correctamente.

Causa

El comportamiento predeterminado para el registro de servicio es no exponer un servicio a través de la fuente ATOM.

Resolución

Configure el extremo para ser reconocible, como se describe en Procedimiento: Publicar un servicio en el registro del Service Bus

¿Te ha resultado útil?
(Caracteres restantes: 1500)

Adiciones de comunidad

AGREGAR
© 2013 Microsoft. Reservados todos los derechos.
facebook page visit twitter rss feed newsletter