Azure WebJobs ServiceBus renvoie l'Exception: trouvé 2 DNS demandes en autorisation

j'essaie de lire un message d'une file D'attente Azure ServiceBus en utilisant une WebJob Azure mais c'est lancer et exception:

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

j'ai mis les bonnes chaînes de connexion nommées "AzureWebJobsServiceBus", "AzureWebJobsDashboard" et "AzureWebJobsStorage"

le code du programme WebJob a été mis à jour pour utiliser JobHostConfiguration:

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

        var host = new JobHost(config);
        host.RunAndBlock();
    }
}

et la méthode du travail réel

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

}

je peux créer et écrire avec succès dans la file via un application console séparée.

mais quand j'exécute l'application webjob, il lance cette exception.

des idées?

EDIT: à l'Aide .net 4.6.1

22
demandé sur mathewc 2015-12-17 10:36:34

6 réponses

29 janvier Microsoft a publié la version 3.1.3 du paquet NuGet WindowsAzure.ServiceBus.

Dans les notes de publication:

• Généralités: .Net 4.6.1+ correction de compatibilité. Fixer custom DNS IdentityVerifier de sorte que nous honorons plusieurs revendications DNS retournés par WIF

la mise à niveau du paquet a résolu le problème pour nous.

16
répondu lsmeby 2016-02-19 12:46:19

La réponse comme solution, n'est pas la solution, c'est un travail bâclé. La solution pour l'utiliser dans .net Framework 4.6.1 est d'ajouter le bloc rutime dans App.config:

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

Lire cet article Atténuation: X509certificiateclaimset.FindClaims Method

Très IMPORTANT pour L'instant Azure WebApps / WebJob etc, ne supporte pas 4.6.1 je vais noter ici quand (dit à jan 21, 2016).

Cela signifie que vous pouvez développer un site web demande d'emploi avec 4.6.1, mais quand vous le poussez à Azure, vous pouvez voir des exceptions comme Job failed due to exit code -2146232576

35
répondu Alberto León 2016-01-21 15:28:01

Comme indiqué dans le cette réponse ci-dessus, l'extrait de code ci-dessous fait le truc

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

mais soyez prudent de l'ajouter à la bonne projet dans votre solution! Ajoutez-le au projet contenant le code Azure et les références Azure.

2
répondu participant 2017-05-23 11:47:21

Déclassement de la .net 4.6.1 à 4,6 semble empêcher le problème de se produire.

1
répondu sf. 2015-12-21 00:18:29

Aujourd'hui, j'ai rencontré ce problème et je n'en avais aucune idée. Enfin, j'ai décidé de mettre à jour tous les paquets Azure nuget que j'utilise (y compris webjobs, servicebus)...) et BOOM! elle FONCTIONNE. Heureusement, cela aidera si quelqu'un se retrouve dans cette question à l'avenir

1
répondu Hung Cao 2017-01-11 02:19:00

Microsoft a publié un nouveau paquet (sous un nouveau nom) pour résoudre ce problème. Si. ..

  • supprimer Microsoft.AspNet.SignalR.ServiceBus package,
  • installer Microsoft.AspNet.SignalR.ServiceBus3 le paquet au lieu de cela, et
  • mettre à jour WindowsAzure.ServiceBus package.

Plus d'infos ici: https://github.com/SignalR/SignalR/issues/3548#issuecomment-296326048

1
répondu Josh M. 2017-05-18 04:58:20