2013-02-20 3 views
8

Ho un problema durante l'utilizzo di Caching di Windows Azure con l'emulatore (ad esempio, su Locale, non su Cloud).Caching di Windows Azure durante il debug - Timeout richiesta

mie configurazioni di sistema sono:

  • Windows 8
  • Visual Studio 2012 Update 1
  • Azure SDK e Emulator 1.8
  • Windows Azure Caching 1.8.1
  • Web API
  • .NET 4.5

Il problema è il seguente: Il nostro server utilizza (in-role) Caching di Windows Azure per la gestione delle sessioni e così via. Una volta che il server riceve richieste dai client, inizia a comunicare con Cache di Windows Azure per inserire/recuperare oggetti (ad es. Oggetti di sessione) . Quindi si verifica un'eccezione "timeout" (Microsoft.ApplicationServer.Caching.DataCacheException) e il server non risponde, mostrando i seguenti messaggi nel registro di output di Visual Studio.

... 
iisexpress.exe Error: 0 : ERROR: <DistributedCache.RoutingClient> 25cb6980-94c5-4e72- adee-cd58defff7fe:SendMsgAndWait: Request TimedOut, msgId = 77 

A first chance exception of type 'Microsoft.ApplicationServer.Caching.DataCacheException' occurred in Microsoft.ApplicationServer.Caching.Client.dll 

'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\windows\assembly\GAC_MSIL\Microsoft.VisualStudio.Debugger.Runtime\11.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Debugger.Runtime.dll' 
iisexpress.exe Error: 0 : The thread '<No Name>' (0x16d0) has exited with code 0 (0x0). 

The thread '<No Name>' (0x1a00) has exited with code 0 (0x0). 
The thread '<No Name>' (0x2298) has exited with code 0 (0x0). 

ERROR: <DistributedCache.RoutingClient> e91ff46b-870c-4d83-8eef-6bdb718baab9:SendMsgAndWait: Request TimedOut, msgId = 78 

iisexpress.exe Warning: 0 : Microsoft.WindowsAzure.ServiceRuntime Verbose: 500 : Role instance status check starting 

Microsoft.WindowsAzure.ServiceRuntime Verbose: 502 : Role instance status check succeeded: Ready 

WARNING: <SimpleSendReceiveModule> DeadServerCallback Called, Server URI: [net.tcp://127.255.0.0:20004], Underlying exception - 

A first chance exception of type 'Microsoft.ApplicationServer.Caching.DataCacheException' occurred in Microsoft.ApplicationServer.Caching.Client.dll 

iisexpress.exe Warning: 0 : WARNING: <SimpleSendReceiveModule> DeadServerCallback Called, Server URI: [net.tcp://127.255.0.0:20004], Underlying exception - 

iisexpress.exe Warning: 0 : WARNING: <SimpleSendReceiveModule> DeadServerCallback: Matches My Server, Cleaning Pending Requests 

iisexpress.exe Warning: 0 : WARNING: <SimpleSendReceiveModule> 48c1dd7f-f54d-40a8-9990-25af48b91eb1:Request - 79, result - Status=SendFailed[System.Net.Sockets.SocketException (0x80004005): An existing connection was forcibly closed by the remote host 

    at System.Net.Sockets.Socket.Send(IList`1 buffers) 

    at Microsoft.ApplicationServer.Caching.TcpSocketChannel.Send(IList`1 buffers, TimeSpan timeout)] 

iisexpress.exe Warning: 0 : WARNING: <SimpleSendReceiveModule> DeadServerCallback: Matches My Server, Cleaning Pending Requests 

A first chance exception of type 'Microsoft.ApplicationServer.Caching.DataCacheException' occurred in Microsoft.ApplicationServer.Caching.Client.dll 

iisexpress.exe Warning: 0 : WARNING: <DistributedCache.SocketClientChannel.1> Request 81 to host net.tcp://127.255.0.0:20004/ failed Status=ChannelOpening 

iisexpress.exe Warning: 0 : WARNING: <DistributedCache.SocketClientChannel.1> Request 80 to host net.tcp://127.255.0.0:20004/ failed Status=ChannelOpening 

iisexpress.exe Warning: 0 : WARNING: <SimpleSendReceiveModule> 8ec8ff74-1f04-49da-8ff5-529d0697542f:Request - 81, result - Status=ChannelOpening 

iisexpress.exe Warning: 0 : A first chance exception of type 'Microsoft.ApplicationServer.Caching.DataCacheException' occurred in Microsoft.ApplicationServer.Caching.Client.dll 

Quando inizia a verificarsi, il server è inattivo (ovvero, in esecuzione, ma non in risposta).

Qualche idea del motivo? È relativo a Windows 8?

Grazie,

risposta

1

Ho anche avuto questo problema e tracciato verso il basso per le schede Ethernet virtuali Hyper-V su una macchina. La disabilitazione dei due adattatori che avevo installato ha corretto gli errori di timeout in Cache di Azure. Su questa macchina potrei continuare a rimanere connesso alla rete/Internet.

Su un'altra macchina Hyper-V non è stato installato e la disattivazione della scheda Ethernet (scollegamento da Internet) ha "risolto" il problema. Quindi per eseguire la mia applicazione devo prima disconnettermi dalla rete ogni volta.

Su entrambe queste macchine la cache di sviluppo di Azure sembra avere un problema quando si effettua una ricerca IP per i server di cache (ad esempio 127.255.0.0, 127.255.0.1, 127.255.0.2, ecc.), Funziona per un poche richieste, quindi inizia a scadere. Quando disconnesso dalla rete funziona sempre.

Questo funzionava bene per me su entrambe le macchine Windows 8 per mesi prima che iniziassi ad avere problemi.

Aggiornamento

Lavaggio del cache DNS risolto questo per me, ora funziona mentre si è connessi a una rete. ipconfig /flushdns

+1

Grazie per condividere la tua esperienza! :) – soleiljy

0

Non sono stato in grado di confermare completamente questo, ma il problema sembra essere qualcosa a che fare con il protocollo legacy nelle dll di cache blu.

sono stato in grado di aggirare il problema eseguendo questa configurazione sul mio cache di default:

<dataCacheClient name="default" isCompressionEnabled="false" maxConnectionsToServer="4" useLegacyProtocol="false" > 

Spero che questo aiuti