VENDITE: 1-800-867-1389

Eseguire la migrazione da Cache nel ruolo al Servizio cache gestito di Azure

Aggiornamento: settembre 2014

noteNota
Per indicazioni sulla scelta dell'offerta di Cache di Azure più adatta alla propria applicazione, vedere Qual è l'offerta di Cache di Azure più adatta alle mie esigenze?.

La migrazione delle applicazioni di Cache di Microsoft Azure che usano Cache nel ruolo per Servizio cache gestito di Azure può essere eseguita apportando modifiche minime all'applicazione esistente. Poiché il Servizio cache gestito usa le stesse API di Cache nel ruolo, il codice esistente che usa quest'ultimo per accedere a una cache può essere usato nuovamente con il Servizio cache gestito. Questo argomento illustra come apportare le modifiche necessarie alla configurazione e all'applicazione per eseguire la migrazione delle applicazioni di Cache nel ruolo per l'uso del Servizio cache gestito.

Il Servizio cache gestito è disponibile nelle tre offerte seguenti.

  • Basic: la cache è disponibile in dimensioni che vanno da 128 MB a 1 GB, con incrementi di 128 MB e una cache denominata predefinita.

  • Standard: la cache è disponibile in dimensioni che vanno da 1 GB a 10 GB con incrementi di 1 GB e supporto di notifiche e di fino a dieci cache denominate.

  • Premium: la cache è disponibile in dimensioni che vanno da 5 GB a 150 GB con incrementi di 5 GB e supporto di notifiche, disponibilità elevata e cache denominate fino a un massimo di dieci.

noteNota
Ogni offerta differisce in termini di prezzi e funzionalità. Per altre informazioni, vedere Dettagli prezzi del servizio Cache e Offerte di cache per il Servizio cache gestito di Azure. Altre informazioni sono inoltre disponibili nella seguente sezione Configure the Cache di questa Guida alla migrazione.

Tutte le funzionalità della cache di Cache nel ruolo sono disponibili nelle diverse offerte di cache per il Servizio cache gestito. Se l'applicazione esistente usa le notifiche, è possibile scegliere l'offerta Standard o Basic. Se la cache include la funzionalità di disponibilità elevata, è necessario scegliere l'offerta di Cache Premium. Un punto di partenza per la migrazione è scegliere l'offerta di cache del Servizio cache gestito che include le funzionalità richieste dall'applicazione Cache nel ruolo e ne soddisfa le esigenze di capacità.

Una volta distribuita l'applicazione, è possibile monitorare le prestazioni della cache ed espanderla o ridurla la cache in base ai requisiti della propria applicazione. Per il monitoraggio delle prestazioni e l'espansione, vedere Per altre informazioni su Eseguire il monitoraggio del Servizio cache gestito di Azure e Scalare una cache per il Servizio cache gestito di Azure.

Nel Servizio cache gestito le istanze di cache vengono create mediante gli script PowerShell.

ImportantImportante
Dopo che un'istanza del Servizio cache gestito è stata creata con i cmdlet PowerShell, può essere visualizzata e configurata nel portale di gestione di Azure.

  1. Aprire la finestra dei comandi di Azure PowerShell.

    noteNota
    Per istruzioni sull'installazione e sull'uso di Azure PowerShell, vedere l'argomento relativo alla modalità di installazione e configurazione di Azure PowerShell.

  2. Richiamare il cmdlet Add-AzureAccount, quindi immettere l'indirizzo e-mail e la password associati al proprio account.

    noteNota
    Se Azure PowerShell è stato configurato con un certificato per l'account personale, è possibile ignorare questo passaggio. Per altre informazioni su come connettere Azure PowerShell con l'account di Azure, vedere l'argomento relativo alla modalità di installazione e configurazione di Azure PowerShell.

  3. Richiamare il cmdlet New-AzureManagedCache e specificare il nome, l'area, nonché l'offerta e la dimensione della cache. Nell'esempio seguente, nella regione geografica South Central US viene creata una cache Basic da 128 MB denominata contosocache.

    New-AzureManagedCache -Name contosocache -Location "South Central US" -Sku Basic -Memory 128MB
    
    noteNota
    Per un elenco completo dei parametri e dei valori che è possibile usare durante la creazione di una cache, vedere la documentazione del cmdlet New-AzureManagedCache.

  4. Dopo aver richiamato il cmdlet PowerShell, la creazione della cache può richiedere alcuni minuti. Dopo essere stata creata, la nuova cache ha lo stato In esecuzione ed è pronta per essere usata con le impostazioni predefinite, oltre che per essere visualizzata e configurata nel portale di gestione di Azure.

    È possibile monitorare l'avanzamento del processo di creazione nella finestra Azure PowerShell. Una volta che la cache è pronta per essere usata, il cmdlet New-AzureManagedCache ne visualizza le informazioni, come mostrato nel seguente esempio.

    PS C:\> Add-AzureAccount
    VERBOSE: Account "user@domain.com" has been added.
    VERBOSE: Subscription "MySubscription" is selected as the default subscription.
    VERBOSE: To view all the subscriptions, please use Get-AzureSubscription.
    VERBOSE: To switch to a different subscription, please use Select-AzureSubscription.
    PS C:\> New-AzureManagedCache -Name contosocache -Location "South Central US" -Sku Basic -Memory 128MB
    VERBOSE: Intializing parameters...
    VERBOSE: Creating prerequisites...
    VERBOSE: Verify cache service name...
    VERBOSE: Creating cache service...
    VERBOSE: Waiting for cache service to be in ready state...
    
    
    Name     : contosocache
    Location : South Central US
    State    : Active
    Sku      : Basic
    Memory   : 128MB
    
    
    
    PS C:\>
    

Cache nel ruolo e il Servizio cache gestito supportano le cache denominate, che forniscono flessibilità per configurare opzioni di cache diverse per set di dati differenti. Ogni cache del Servizio cache gestito include una cache denominata predefinita. Nelle offerte di Cache Standard e Premium è possibile configurare fino a nove cache denominate aggiuntive. Ogni cache denominata include specifiche impostazioni individuali, ad esempio disponibilità elevata, notifiche, rimozione personalizzata e criteri di scadenza. Le impostazioni delle cache denominate vengono configurate nel portale di gestione, nella scheda Configura relativa alla cache.

Cache denominate nel Servizio cache di Windows Azure

Sebbene Cache nel ruolo e il Servizio cache gestito presentino le stesse funzionalità della cache, sono presenti alcune piccole differenze, elencate nella seguente tabella.

 

Funzionalità Supporto del Servizio cache gestito Supporto Cache nel ruolo

Nome

È configurata una cache predefinita. Nelle offerte Standard e Premium è possibile configurare fino a nove cache denominate aggiuntive.

È configurata una cache predefinita ed è possibile configurare cache denominate aggiuntive.

Disponibilità elevata

La disponibilità elevata viene fornita solo nell'offerta di Cache Premium, non in quella Basic o Standard. Per altre informazioni, vedere Offerte di cache per il Servizio cache gestito di Azure.

È possibile abilitare la disponibilità elevata per tutte le topologie di Cache nel ruolo.

Notifiche

Le notifiche sono disponibili nelle offerte di Cache Standard e Premium, ma non nell'offerta di Cache Basic. Per altre informazioni, vedere Offerte di cache per il Servizio cache gestito di Azure.

È possibile abilitare le notifiche per tutte le topologie di Cache nel ruolo.

Criteri di rimozione

Le opzioni disponibili sono Abilitato, che prevede l'uso di un algoritmo LRU (utilizzati meno di recente) per determinare gli elementi da rimuovere, o Disabilitato. Il valore predefinito è Abilitato.

Le opzioni sono LRU (utilizzati meno di recente) o Nessuno. Il valore predefinito è LRU.

Durata (min)

Nel Servizio cache gestito l'impostazione è denominata Durata (min).

In Cache nel ruolo l'impostazione è denominata Durata (min).

Criterio di scadenza

Questa impostazione è denominata Criterio di scadenza e ha tre valori possibili: Nessuna, Assoluta e Estendibile, corrispondenti all'impostazione Criterio di scadenza di Cache nel ruolo.

Questa impostazione è denominata Criterio di scadenza e ha tre valori possibili: Nessuna, Assoluta e Finestra temporale scorrevole.

Per eseguire la migrazione da Cache nel ruolo al Servizio cache gestito, ricreare tutte le cache denominate dal cluster di cache di Cache nel ruolo nella nuova cache del Servizio cache gestito.

Una volta configurata la nuova cache del Servizio cache gestito, il passaggio successivo consiste nel rimuovere la memorizzazione nella cache dal ruolo che ha ospitato Cache nel ruolo. I passaggi della procedura variano a seconda della topologia del cluster di cache per Cache nel ruolo.

Per rimuovere un cluster Cache nel ruolo dedicato, è necessario rimuovere il progetto del ruolo di lavoro della cache dalla soluzione Visual Studio e dalla cartella Ruoli del progetto relativo ai servizi cloud.

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul ruolo di lavoro della cache nella cartella Ruoli del progetto relativo ai servizi cloud, quindi scegliere Rimuovi.

    Rimozione del ruolo di lavoro della cache
  2. Fare clic con il pulsante destro del mouse sul progetto del ruolo di lavoro in Esplora soluzioni e scegliere Rimuovi.

Per disabilitare la memorizzazione nella cache basata su ruolo con risorse condivise in un ruolo Web o di lavoro, deselezionare l'impostazione Memorizzazione nella cache nella scheda Memorizzazione nella cache delle proprietà del ruolo.

  1. Fare clic con il pulsante destro del mouse sul progetto relativo ai servizi cloud in Esplora soluzioni e scegliere Proprietà.

    Voce di menu delle proprietà del ruolo della cache
  2. Passare alla scheda Memorizzazione nella cache, deselezionare la casella di controllo Abilita memorizzazione nella cache e premere CTRL+S per salvare.

    Disabilitazione dell'impostazione della cache basata su ruolo con risorse condivise

Dopo aver creato e configurato la cache, il passaggio successivo consiste nell'aggiungere la configurazione e i riferimenti necessari affinché i client della cache possano accedere alla cache. Il Servizio cache gestito supporta i seguenti client.

  • Siti Web di Azure

  • Ruolo Web e ruolo di lavoro di Servizi cloud di Azure

  • Macchine virtuali di Azure

noteNota
Se il progetto di Cache nel ruolo sta già usando l'SDK di più recente, è sufficiente aggiornare la configurazione del client della cache ignorando i passaggi riportati di seguito e seguendo la procedura descritta in Aggiornare la configurazione del client della cache per l'uso del servizio Cache.

Se il progetto di Cache nel ruolo sta usando l'SDK 1.8 - 2.0 di , è necessario rimuovere il pacchetto Caching NuGet, eliminare qualsiasi rimanente configurazione del client della cache e quindi installare la versione più recente di Azure SDK (attualmente la 2.1). Dopo aver aggiornato l'SDK, installare e configurare la versione più recente del pacchetto Caching NuGet. Per configurare i client della cache, completare la seguente procedura per ciascuno di essi.

Prima che sia possibile configurare le applicazioni client per il Servizio cache gestito, è necessario rimuovere la configurazione di Cache nel ruolo e i riferimenti ad assembly esistenti. È possibile ottenere questo risultato disinstallando il pacchetto NuGet di Cache nel ruolo.

Per disinstallare il pacchetto NuGet di Cache nel ruolo, fare clic con il pulsante destro del mouse su Esplora soluzioni e scegliere Gestisci pacchetti NuGet. Selezionare il nodo Pacchetti installati, digitare Caching nella casella Cerca in pacchetti installati. Selezionare Shared Caching di Azure, fare clic su Disinstalla, quindi su Chiudi.

noteNota
Nella schermata seguente la versione del pacchetto NuGet è 2.1.0.0. Se si utilizza questa versione o una successiva, ignorare questo passaggio. Questo passaggio deve essere eseguito solo se la versione del pacchetto NuGet è 1.8.* o 2.0.*.

Disinstallazione del pacchetto NuGet di Cache nel ruolo

La disinstallazione del pacchetto NuGet di Cache nel ruolo determina la rimozione degli assembly di Cache nel ruolo e delle voci di Cache nel ruolo nel file app.config o web.config dell'applicazione client. Poiché quando si disinstalla il pacchetto NuGet alcune impostazioni personalizzate potrebbero non essere rimosse, aprire il file web.config o app.config e assicurarsi che i seguenti elementi siano stati completamente rimossi.

  • Assicurarsi che la voce dataCacheClients venga rimossa dall'elemento configSections. Non rimuovere l'intero elemento configSections, ma soltanto la voce dataCacheClients, se presente.

    <configSections>
      <!-- Existing sections omitted for clarity. -->
      <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
    </configSections>
    
  • Assicurarsi che la sezione dataCacheClients sia rimossa. La sezione dataCacheClients sarà simile a quella riportata nel seguente esempio.

    <dataCacheClients>
      <dataCacheClient name="default" channelOpenTimeout="0">
        <autoDiscover isEnabled="true" identifier="CacheWorker" />
      </dataCacheClient>
    </dataCacheClients>
    

Una volta rimossa la configurazione di Cache nel ruolo, è possibile configurare il client della cache, come descritto nella sezione Configurare un client della cache mediante il pacchetto NuGet di Caching seguente.

Il Servizio cache gestito fornisce un pacchetto NuGet per aggiungere la configurazione e i riferimenti agli assembly necessari per consentire ai client della cache di accedere alla cache.

ImportantImportante
Prima di configurare il client della cache mediante il pacchetto NuGet del Servizio cache gestito, assicurarsi che la configurazione di Cache nel ruolo sia stata completamente rimossa dal file web.config o app.config del ruolo client, come descritto nella precedente sezione.

ImportantImportante
Per i passaggi successivi è necessario Gestione pacchetti NuGet versione 2.2.* o successiva. Per installare la versione di Gestione pacchetti NuGet più recente, vedere Gestione pacchetti NuGet.

Per usare il pacchetto NuGet del Servizio cache gestito, fare clic con il pulsante destro del mouse su Esplora soluzioni e scegliere Gestisci pacchetti NuGet.

Selezionare Caching di Azure, fare clic su Installa e quindi su Accetto. Una volta installato il pacchetto nel progetto client, fare clic su Chiudi per chiudere la finestra Gestisci pacchetti NuGet.

noteNota
Se Caching di Azure non è incluso nell'elenco, digitare WindowsAzure.Caching nella casella di testo Cerca Online.

Pacchetto NuGet di Cache di Windows Azure

Quando il pacchetto NuGet del Servizio cache gestito è installato in un progetto client, questo aggiunge la configurazione richiesta e i riferimenti agli assembly per consentire all'applicazione client di accedere alla cache.

Nel file web.config o app.config del progetto vengono aggiunti diversi elementi.

  1. A configSections vengono aggiunte due sezioni, denominate dataCacheClients e cacheDiagnostics.

    <!-- Non-cache sections omitted for space -->
      <configSections>
        <section name="dataCacheClients" 
            type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" 
            allowLocation="true" 
            allowDefinition="Everywhere" />
    
        <section name="cacheDiagnostics" 
            type="Microsoft.ApplicationServer.Caching.AzureCommon.DiagnosticsConfigurationSection, Microsoft.ApplicationServer.Caching.AzureCommon" 
            allowLocation="true" 
            allowDefinition="Everywhere" />
      </configSections>
    
  2. Viene aggiunta una sezione dataCacheClients alla sezione configuration.

    <!-- Non-cache sections omitted for space -->
      <dataCacheClients>
        <dataCacheClient name="default">
          <!--To use the in-role flavor of Azure Caching, set identifier to be the cache cluster role name -->
          <!--To use the Azure Caching Service, set identifier to be the endpoint of the cache cluster -->
          <autoDiscover
            isEnabled="true" 
            identifier="[Cache role name or Service Endpoint]" />
          <!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
          <!--Use this section to specify security settings for connecting to your cache. 
              This section is not required if your cache is hosted on a role that is a part 
              of your cloud service. -->
          <!--<securityProperties mode="Message" sslEnabled="false">
            <messageSecurity authorizationInfo="[Authentication Key]" />
          </securityProperties>-->
        </dataCacheClient>
      </dataCacheClients>
    
    Sostituire [Cache role name or Service Endpoint] con l'URL dell'endpoint visualizzato nel dashboard della cache nel portale di gestione.

    URL di endpoint per il Servizio cache di Windows Azure
    In questo esempio la cache è denominata applicationcache e l'URL dell'endpoint è applicationcache.cache.windows.net.

    <autoDiscover isEnabled="true" identifier="applicationcache.cache.windows.net" />
    
    Rimuovere i commenti dalla sezione securityProperties e sostituire [Authentication Key] con la chiave di autenticazione primaria.

    <!--Use this section to specify security settings for connecting to your cache. 
        This section is not required if your cache is hosted on a role that is a part 
        of your cloud service. -->
    <!--<securityProperties mode="Message" sslEnabled="false">
      <messageSecurity authorizationInfo="[Authentication Key]" />
    </securityProperties>-->
    
    
    La chiave di autenticazione è disponibile nel portale di gestione facendo clic su Gestisci chiavi dal dashboard della cache. Per altre informazioni sulle chiavi di accesso e la sicurezza delle comunicazioni con la cache mediante l'attributo sslEnabled, vedere Modello di sicurezza per il Servizio cache gestito di Azure.

    Gestione delle chiavi di accesso per il Servizio cache di Windows Azure
    WarningAvviso
    Questa impostazione deve essere configurata in modo corretto, altrimenti i client non saranno in grado di accedere alla cache.

Per quanto riguarda i progetti dei servizi cloud, il pacchetto NuGet del Servizio cache gestito aggiunge anche un'impostazione ClientDiagnosticLevel all'elemento ConfigurationSettings del ruolo del client della cache nel file ServiceConfiguration.cscfg. Il seguente esempio mostra la sezione WebRole1 del file ServiceConfiguration.cscfg con ClientDiagnosticLevel impostato su 1, ossia il valore predefinito di ClientDiagnosticLevel.

<Role name="WebRole1">
  <Instances count="1" />
  <ConfigurationSettings>
    <!-- Other settings omitted for space... -->
    <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />
  </ConfigurationSettings>
</Role>
noteNota
Per altre informazioni sui livelli di diagnostica della cache, vedere Informazioni su ClientDiagnosticLevel per il Servizio cache gestito di Azure.

Oltre ad aggiungere la configurazione richiesta, il pacchetto NuGet del Servizio cache gestito aggiunge anche i riferimenti ai seguenti assembly.

  • Microsoft.ApplicationServer.Caching.Client.dll

  • Microsoft.ApplicationServer.Caching.Core.dll

  • Microsoft.ApplicationServer.Caching.AzureCommon.dll

  • Microsoft.ApplicationServer.Caching.AzureClientHelper.dll

  • Microsoft.WindowsFabric.Common.dll

  • Microsoft.WindowsFabric.Data.Common.dll

Se il progetto è un progetto Web, viene aggiunto anche il riferimento al seguente assembly.

  • Microsoft.Web.DistributedCache.dll

noteNota
Il Servizio cache gestito e Cache nel ruolo condividono la stessa API e, anche se hanno nomi uguali, gli assembly sono diversi e si trovano in percorsi differenti. Il pacchetto NuGet del Servizio cache gestito rimuoverà i riferimenti agli assembly di Cache nel ruolo e aggiungerà i riferimenti agli assembly del Servizio cache gestito corretti. Gli assembly del Servizio cache gestito si trovano nella cartella C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\v2.1\ref\Caching.

Se il progetto di Cache nel ruolo usa già l'ultimo SDK di , è sufficiente aggiornare la configurazione del client della cache in modo che punti alla nuova cache del Servizio cache gestito.

  1. Aprire il file web.config o app.config del progetto del client della cache e trovare la sezione dataCacheClients.

    <!-- Non-cache sections omitted for space -->
      <dataCacheClients>
        <dataCacheClient name="default">
          <!--To use the in-role flavor of Windows Azure Caching, set identifier to be the cache cluster role name -->
          <!--To use the Windows Azure Caching Service, set identifier to be the endpoint of the cache cluster -->
          <autoDiscover
            isEnabled="true" 
            identifier="MyCacheWorkerRole" />
          <!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
          <!--Use this section to specify security settings for connecting to your cache. 
              This section is not required if your cache is hosted on a role that is a part 
              of your cloud service. -->
          <!--<securityProperties mode="Message" sslEnabled="false">
            <messageSecurity authorizationInfo="[Authentication Key]" />
          </securityProperties>-->
        </dataCacheClient>
      </dataCacheClients>
    
  2. Nella sezione autoDiscover sostituire il nome del ruolo del cluster di Cache nel ruolo con il nome dell'URL dell'endpoint della cache del Servizio cache gestito nell'attributo identifier. L'URL dell'endpoint viene visualizzato nel dashboard della cache nel portale di gestione.

    URL di endpoint per il Servizio cache di Windows Azure
    In questo esempio la cache è denominata applicationcache e l'URL dell'endpoint è applicationcache.cache.windows.net.

    <autoDiscover isEnabled="true" identifier="applicationcache.cache.windows.net" />
    
  3. Rimuovere il commento dalla sezione securityProperties e sostituire [Authentication Key] con la chiave di autenticazione.

    <!--Use this section to specify security settings for connecting to your cache. 
        This section is not required if your cache is hosted on a role that is a part 
        of your cloud service. -->
    <!--<securityProperties mode="Message" sslEnabled="false">
      <messageSecurity authorizationInfo="[Authentication Key]" />
    </securityProperties>-->
    
    
    La chiave di autenticazione è disponibile nel portale di gestione facendo clic su Chiavi di accesso dal dashboard della cache.

    Gestione delle chiavi di accesso per il Servizio cache di Windows Azure

Una volta eseguita la migrazione dei progetti ASP.NET da Cache nel ruolo al Servizio cache gestito come descritto inConfigure the Cache Clients, l'archiviazione dello stato della sessione ASP.NET o la memorizzazione nella cache dell'output delle pagine richiedono solo modifiche minime. Per consentire la memorizzazione dello stato della sessione ASP.NET nella cache, aggiungere la seguente sezione a system.web nel file web.config.

<sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
  <providers>
    <add name="AppFabricCacheSessionStoreProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" cacheName="default" useBlobMode="true" dataCacheClientName="default" />
  </providers>
</sessionState>
noteNota
Se il ruolo Web ASP.NET è già stato configurato per l'uso del provider di stato della sessione per memorizzazione nella cache, questa sezione è già presente e non è richiesta alcuna modifica.

Aggiornare cacheName per specificare la cache contenente lo stato della sessione. Usare default per specificare la cache predefinita.

Per abilitare la memorizzazione nella cache dell'output delle pagine, aggiungere la seguente sezione a system.web.

<caching>
  <outputCache defaultProvider="DistributedCache">
    <providers>
      <add name="DistributedCache" type="Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache" cacheName="default" dataCacheClientName="default" />
    </providers>
  </outputCache>
</caching>
noteNota
Se il ruolo Web ASP.NET è già stato configurato per l'uso del provider di cache di output per memorizzazione nella cache, questa sezione è già presente e non è richiesta alcuna modifica.

Aggiornare cacheName per specificare la cache contenente lo stato della sessione. Usare default per specificare la cache predefinita.

Aggiungere una direttiva OutputCache a ogni pagina per cui si desidera memorizzare l'output nella cache.

<%@ OutputCache Duration="60" VaryByParam="*" %>

In questo esempio i dati delle pagine rimangono memorizzati nella cache per 60 secondi e per ogni combinazione di parametri viene memorizzata nella cache una versione diversa della pagina. Per altre informazioni sulle opzioni disponibili, vedere l'argomento relativo alla direttiva OutputCache.

Vedere anche

Il documento è risultato utile?
(1500 caratteri rimanenti)
Grazie per i commenti inviati.
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2015 Microsoft