2013-08-01 8 views
8

Próbuję rozpocząć pracę z usługą Azure i próbuję użyć funkcji buforowania. Stworzyłem projekt usługi w chmurze i dodano rolę pracownika buforującego pamięć podręczną oraz rolę internetową. Zainstalowałem nuget "Windows Azure Caching" w projektach dla obu ról i dodałem nazwę roli pracownika pamięci podręcznej jako identyfikatora w elemencie DataCacheClients w pliku web.config roli internetowej.Wyjątek podczas korzystania z usługi buforowania systemu Windows Azure: nie jest znany taki host

I dodaje następujący kod do roli internetowej:

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

Kiedy próbuję uruchomić to lokalnie na emulatorze, pojawia się następujący wyjątek:

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 

Czy możesz mi powiedzieć czego tu brakuje?

Azure SDK używany: v2.0

+0

Niestety, czas na to pytanie jest dla mnie dobry. :-) –

Odpowiedz

14

Timing na swoje pytanie nie może być lepiej. Mieliśmy także do czynienia z dokładnie tą samą kwestią i zastanawialiśmy się nad tym, jaki może być problem. Mieliśmy jeden projekt, w którym wszystko działało perfekcyjnie iw jednym otrzymywaliśmy ten sam błąd. Na podstawie naszych badań zidentyfikowaliśmy problem z pakietem Nuget do buforowania. Wygląda na to, że wczoraj została wydana nowa wersja (2.1.0.0) i stwierdziliśmy, że jeśli zainstalujemy ten pakiet, otrzymamy ten błąd. Czy możesz sprawdzić wersję pakietu w swojej sprawie? Dokumentacja stwierdza, że ​​ta nowa wersja może być używana tylko z najnowszym SDK (2.1) opublikowanym dzisiaj.

Jednym z rozwiązań byłoby odinstalowanie wersji 2.1.0.0 i zainstalowanie wersji 2.0.0.0. Aby zainstalować wersję 2.0.0.0, otwórz Menedżer pakietów Console (View --> Other Windows --> Package Manager Console) i typu następujące polecenia tam:

Install-Package Microsoft.WindowsAzure.Caching -Version 2.0.0.0 

ta stała nasz problem. Mam nadzieję, że powinno to również naprawić twoje.

+0

Czas odpowiedzi nie może być lepszy. Rozwiązał mój problem. Dziękuję Ci. –

+0

Wow! co mogę powiedzieć ... dziękuję za tonę – Aadith

+0

Jestem ciekawa, jak odgadłeś główną przyczynę ... Spędziłem kilka godzin, aby zająć się problemem, ale bezskutecznie ...dzielenie się technikami debugowania w celu zidentyfikowania takich problemów byłoby bardzo pomocne. – Aadith

2

Poniżej znajduje się łącze do blogu Cloud Integration Engineering w systemie Windows Azure, w którym opisano sposób radzenia sobie z tym samym problemem. Zalecają uaktualnienie do Azure SDK v 2.1 lub wycofanie, jak stwierdza zaakceptowana odpowiedź.

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

+0

Dzięki. Pomyślałem, że zrobiłem: "Zalecają uaktualnienie do Azure SDK v 2.1 lub wycofanie, jak stwierdza przyjęta odpowiedź". –

+0

odpowiedź jest przydatna, dziękuję mat. –

1

Wyjątek ten może również występować pod emulatorem obliczeniowej jeśli za rolę w konfiguracji biblioteki klienta nie ma cache skonfigurowany. W moim przypadku stało się to celowo, ponieważ emulator pamięci podręcznej ma pewne problemy, które mogą spowolnić test i debugowanie usługi.

W poprzedniej wersji Buforowania Windows Azure, w tym scenariuszu konstrukcja DataCacheFactory zawiedzie z wyjątkiem (obsługiwane przez mój kod); z Windows Azure Caching 2.1 (i Azure SDK 2.1) w tym samym scenariuszu kod uznawałby rolę jako adres serwera, a zatem na konstrukcji DataCache próbowałby komunikować się z nieistniejącą pamięcią podręczną - to prowadzi do 3 minutowego oczekiwania i wyjątek zgłoszony w pytaniu.

Zmieniłem kod w celu wykrycia nowej sytuacji dla tego scenariusza - więcej szczegółów można znaleźć w this SO question.

Powiązane problemy