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
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.
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
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.
Déclassement de la .net 4.6.1 à 4,6 semble empêcher le problème de se produire.
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
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