2013-08-01 9 views
8

Sto tentando di iniziare con Azure e sto tentando di utilizzare la funzionalità di memorizzazione nella cache. Ho creato un progetto di servizio cloud e aggiunto un ruolo di lavoratore cache e un ruolo web. Ho installato il nuget "Cache di Windows Azure" nei progetti per entrambi i ruoli e aggiunto il nome del ruolo di cache worker come identificatore nell'elemento DataCacheClients in web.config del ruolo web.Eccezione durante l'utilizzo della Caching di Windows Azure: non è noto un host di questo tipo

ho aggiunto il seguente codice nel ruolo web:

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

Quando provo a fare funzionare questo localmente sul emulatore, ottengo la seguente eccezione:

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 

Può dirmi cosa mi manca qui?

Azure SDK utilizzato: v2.0

+0

Tragicamente, la tempistica di questa domanda va bene anche per me. :-) –

risposta

14

Timing della tua domanda non poteva essere migliore. Abbiamo anche affrontato esattamente lo stesso problema e stavamo scrutando la nostra testa su quale potesse essere il problema. Abbiamo avuto un progetto in cui tutto ha funzionato perfettamente e in uno abbiamo avuto lo stesso errore. Sulla base delle nostre ricerche, abbiamo identificato il problema con il pacchetto Nuget per il caching. Sembra che una nuova versione (2.1.0.0) sia stata rilasciata ieri e abbiamo scoperto che se installiamo quel pacchetto, otteniamo questo errore. Puoi controllare la versione del pacchetto nel tuo caso? La documentazione afferma che questa nuova versione può essere utilizzata solo con l'ultimo SDK (2.1) rilasciato oggi.

Una soluzione sarebbe disinstallare la versione 2.1.0.0 e installare la versione 2.0.0.0. Per installare la versione 2.0.0.0, aperto Package Manager Console (View --> Other Windows --> Package Manager Console) e il tipo seguente comando c'è:

Install-Package Microsoft.WindowsAzure.Caching -Version 2.0.0.0 

Questo fisso il nostro problema. Spero che possa aggiustare anche il tuo.

+0

E anche i tempi della tua risposta non potrebbero essere migliori. Ha risolto il mio problema. Grazie. –

+0

Wow! cosa posso dire ... grazie mille – Aadith

+0

Sono curioso di sapere come hai capito la causa principale ... Ho passato qualche ora per risolvere il problema, ma senza successo ...condividere le tecniche di debug per identificare tali problemi sarebbe di grande aiuto – Aadith

2

Questo è un collegamento al blog di Windows Azure Cloud Integration Engineering su come affrontare lo stesso problema. Raccomandano l'aggiornamento a Azure SDK v 2.1 o il rollback come gli stati di risposta accettati.

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

+0

Grazie. Ho pensato: "Raccomandano l'aggiornamento ad Azure SDK v 2.1 o il rollback come gli stati di risposta accettati". –

+0

la risposta è utile, grazie matt. –

1

Questa eccezione potrebbe verificarsi anche sotto calcolo emulatore se per il ruolo nella configurazione libreria client non c'è la cache configurato. Nel mio caso ciò è avvenuto di proposito, poiché l'emulatore di cache ha alcuni problemi che possono rallentare il test e il debugging del servizio.

Nella versione precedente di Caching di Windows Azure, in questo scenario la costruzione di DataCacheFactory non riusciva con un'eccezione (gestita dal mio codice); con Windows Azure Caching 2.1 (e Azure SDK 2.1) in questo stesso scenario il codice considererebbe il nome del ruolo come indirizzo del server e quindi nella costruzione DataCache si tenterebbe di comunicare con la cache non esistente. Ciò comporta un attesa di 3 minuti e l'eccezione riportata nella domanda.

Ho modificato il mio codice per rilevare la nuova situazione per questo scenario: è possibile trovare ulteriori dettagli in this SO question.

Problemi correlati