porta microsoft management azure azureservicebus azure-webjobs azure-servicebus-queues azure-webjobssdk

microsoft - porta azure



Azure WebJobs ServiceBus devuelve Excepción: se encontraron 2 reclamaciones de DNS en el contexto de autorización (6)

Estoy tratando de leer un mensaje de una cola de Azure ServiceBus usando un Azure WebJob, pero es una excepción:

Unhandled Exception: System.InvalidOperationException: Found 2 DNS claims in authorization context.

He establecido las cadenas de conexión correctas llamadas "AzureWebJobsServiceBus", "AzureWebJobsDashboard" y "AzureWebJobsStorage"

El código del programa WebJob se ha actualizado para usar JobHostConfiguration:

class Program { static void Main() { var config = new JobHostConfiguration(); config.UseServiceBus(); var host = new JobHost(config); host.RunAndBlock(); } }

Y el método de trabajo real

public class Functions { public async static Task ServiceBusResizeRequest( [ServiceBusTrigger("blah")] string message, TextWriter log ) { await log.WriteLineAsync("got message " + message); } }

Puedo crear y escribir en la cola con éxito a través de una aplicación de consola separada.

Pero cuando ejecuto la aplicación webjob, lanza esa excepción.

¿Algunas ideas?

EDITAR: Usando .net 4.6.1


Como se describe en esta respuesta anterior, el fragmento de abajo hace el truco

<runtime> ... <AppContextSwitchOverrides value="Switch.System.DisableMultipleDNSEntriesInSANCertificate=true" /> ... <runtime>

¡PERO tenga cuidado de agregarlo al proyecto correcto en su solución ! Agréguelo al proyecto que contiene el código de Azure y las referencias de Azure.


El 29 de enero, Microsoft lanzó la versión 3.1.3 del paquete NuGet WindowsAzure.ServiceBus .

De las notas de publicación:

• General: corrección de compatibilidad con .Net 4.6.1+. Corrección del identificador de identidad de DNS personalizado para que podamos cumplir con múltiples reclamaciones de DNS devueltas por WIF

Actualizar el paquete solucionó el problema para nosotros.


Hoy, me encontré con este problema y no tenía idea de ello. Finalmente, decidí actualizar todos los paquetes de nuget de Azure que estoy usando (incluidos webjobs, servicebus ...) y BOOM! funciona. Con suerte, ayudará si alguien se encuentra con este problema en el futuro.


La degradación de .net 4.6.1 a 4.6 parece evitar que ocurra el problema.


La respuesta marcada como solución, no es la solución, es un trabajo fallido. La solución para usarlo en .Net Framework 4.6.1 es agregar el bloque de rutime en App.config:

<AppContextSwitchOverrides value="Switch.System.IdentityModel.DisableMultipleDNSEntriesInSANCertificate=true" />

Lea este artículo Mitigación: X509CertificiateClaimSet.FindClaims Method

Muy IMPORTANTE, por ahora Azure WebApps / WebJob, etc., no es compatible con 4.6.1. Notaré aquí cuándo (según el 21 de enero de 2016).

Esto significa que puede desarrollar una aplicación de trabajo web con 4.6.1, pero cuando lo empuja a Azure, puede ver excepciones como el Job failed due to exit code -2146232576


Microsoft lanzó un nuevo paquete (con un nuevo nombre) para solucionar este problema. Asi que ...

  • eliminar el paquete Microsoft.AspNet.SignalR.ServiceBus ,
  • instale el paquete Microsoft.AspNet.SignalR.ServiceBus3 lugar, y
  • actualizar el paquete WindowsAzure.ServiceBus

Más información aquí: https://github.com/SignalR/SignalR/issues/3548#issuecomment-296326048