Ich versuche, mit Azure zu beginnen und versuche, die Caching-Funktion zu verwenden. Ich habe ein Cloud-Service-Projekt erstellt und eine Cache-Rolle und eine Web-Rolle hinzugefügt. Ich habe "Windows Azure Caching" nugget in Projekte für beide Rollen installiert und den Namen der Cache-Worker-Rolle als Bezeichner im DataCacheClients-Element in web.config der Webrolle hinzugefügt.
Ich habe den folgenden Code in die Webrolle eingefügt:
%Vor%Wenn ich versuche, das lokal auf dem Emulator auszuführen, erhalte ich die folgende Ausnahme:
%Vor%Können Sie mir bitte sagen, was ich hier vermisse?
Azure SDK verwendet: v2.0
Timing Ihrer Frage könnte nicht besser sein. Wir haben uns genau dem gleichen Problem gestellt und uns den Kopf verdreht, was das Problem sein könnte. Wir hatten ein Projekt, bei dem alles perfekt funktionierte und in einem bekamen wir den gleichen Fehler. Basierend auf unseren Untersuchungen haben wir das Problem mit dem Nuget-Paket für das Caching identifiziert. Es scheint, dass gestern eine neue Version (2.1.0.0) veröffentlicht wurde und wir haben festgestellt, dass wir diesen Fehler erhalten, wenn wir dieses Paket installieren. Können Sie die Paketversion in Ihrem Fall überprüfen? Die Dokumentation besagt, dass diese neue Version nur mit dem neuesten SDK (2.1), das heute veröffentlicht wurde, verwendet werden kann.
Eine Lösung wäre, Version 2.1.0.0 zu deinstallieren und Version 2.0.0.0 zu installieren. Um die Version 2.0.0.0 zu installieren, öffnen Sie die Package Manager Console ( View --> Other Windows --> Package Manager Console
) und geben Sie folgenden Befehl ein:
Das hat unser Problem behoben. Hoffentlich sollte es auch dein reparieren.
Hier finden Sie einen Link zum Windows Azure Cloud Integration Engineering-Blog zum Umgang mit diesem Problem. Sie empfehlen ein Upgrade auf Azure SDK Version 2.1 oder ein Rollback als akzeptierte Antwort.
Diese Ausnahme kann auch unter dem Computeremulator auftreten, wenn für die Rolle in der Konfiguration der Clientbibliothek kein Cache konfiguriert ist. In meinem Fall ist dies absichtlich passiert, da der Cache-Emulator einige Probleme hat, die den Test und das Debugging des Dienstes verlangsamen können.
In der vorherigen Version von Windows Azure Caching wurde in diesem Szenario die Konstruktion von DataCacheFactory
mit einer Ausnahme fehlgeschlagen (wird von meinem Code verarbeitet). Mit Windows Azure Caching 2.1 (und Azure SDK 2.1) würde der Code in diesem Szenario den Rollennamen als Serveradresse betrachten und somit auf DataCache
construction versuchen, mit dem nicht vorhandenen Cache zu kommunizieren - dies führt zu einer 3-minütigen Ausführung warte und die Ausnahme berichtet in der Frage.
Ich habe meinen Code geändert, um die neue Situation für dieses Szenario zu erkennen. Weitere Informationen finden Sie in diese SO-Frage .