2013-08-01 10 views
8

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 das Windows Azure Caching-Nuget 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.Ausnahme bei der Verwendung von Windows Azure Caching: Es ist kein solcher Host bekannt

Ich habe den folgenden Code in die Web-Rolle:

DataCacheFactory cf = new DataCacheFactory(); 
DataCache c = cf.GetDefaultCache(); 

Wenn ich versuche, diese auf dem Emulator lokal auszuführen, erhalte ich die folgende Ausnahme:

ErrorCode<ERRCA0017>:SubStatus<ES0006>:There is a temporary failure. 
    Please retry later. (One or more specified cache servers are unavailable, 
which could be caused by busy network or servers. For on-premises cache clusters, 
also verify the following conditions. Ensure that security permission has been granted 
for this client account, and check that the AppFabric Caching Service is allowed through 
the firewall on all cache hosts. Also the MaxBufferSize on the server must be greater 
than or equal to the serialized object size sent from the client.). 
Additional Information : The client was trying to communicate with the server: net.tcp://MvcWebRole1:24233. 


Inner Exception : No such host is known 

Können Sie mir bitte sagen, Was fehlt mir hier?

Azure SDK verwendet: v2.0

+0

Tragischerweise ist das Timing dieser Frage auch gut für mich. :-) –

Antwort

14

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 wird, verwandt werden kann.

Eine Lösung wäre, Version 2.1.0.0 zu deinstallieren und Version 2.0.0.0 zu installieren. So installieren Sie Version 2.0.0.0, öffnen Package Manager Console (View --> Other Windows --> Package Manager Console) und geben Sie folgenden Befehl gibt:

Install-Package Microsoft.WindowsAzure.Caching -Version 2.0.0.0 

Diese feste unser Problem. Hoffentlich sollte es auch dein reparieren.

+0

Und auch das Timing Ihrer Antwort könnte nicht besser sein. Es hat mein Problem gelöst. Vielen Dank. –

+0

Wow! Was kann ich sagen ... Danke eine Tonne – Aadith

+0

Ich bin neugierig, wie Sie die Ursache herausgefunden ... Ich verbrachte ein paar Stunden, um auf das Problem zu kommen, aber ohne Erfolg ...Debugging-Techniken zu teilen, um solche Probleme zu identifizieren, wäre eine große Hilfe – Aadith

2

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.

http://blogs.msdn.com/b/cie/archive/2013/08/08/windows-azure-caching-2-1-0-0-no-such-host-is-known.aspx

+0

Danke. Dachte ich habe: "Sie empfehlen ein Upgrade auf Azure SDK v 2.1 oder Rollback als die angenommenen Antwortstatus." –

+0

Antwort ist nützlich, danke matt. –

1

Diese Ausnahme auch kein Cache konfiguriert es, wenn für die Rolle in der Client-Library-Konfiguration auftreten unter Emulator berechnen könnte, ist. In meinem Fall passierte dies absichtlich, da der Cache-Emulator einige Probleme hat, die den Test und das Debugging auf dem Dienst verlangsamen können.

In der vorherigen Version von Windows Azure Caching schlug die Konstruktion von DataCacheFactory in diesem Szenario mit einer Ausnahme fehl (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 Konstruktion versuchen, mit dem nicht vorhandenen Cache zu kommunizieren - dies führt zu einer Wartezeit von 3 Minuten die Ausnahme in der Frage gemeldet.

Ich habe meinen Code geändert, um die neue Situation für dieses Szenario zu erkennen - weitere Details finden Sie in this SO question.

Verwandte Themen