Usare l'emulatore di archiviazione di Azure per sviluppo e testUse the Azure storage emulator for development and testing

Il Microsoft Azure emulatore di archiviazione è uno strumento che emula i servizi BLOB, di Accodamento e tabelle di Azure per scopi di sviluppo locale.The Microsoft Azure storage emulator is a tool that emulates the Azure Blob, Queue, and Table services for local development purposes. È possibile testare l'applicazione nei servizi di archiviazione in locale senza creare una sottoscrizione di Azure o sostenere costi.You can test your application against the storage services locally without creating an Azure subscription or incurring any costs. Quando si è soddisfatti del funzionamento dell'applicazione nell'emulatore, passare a usando un account di archiviazione di Azure nel cloud.When you're satisfied with how your application is working in the emulator, switch to using an Azure storage account in the cloud.

Ottenere l'emulatore di archiviazioneGet the storage emulator

L'emulatore di archiviazione è disponibile come parte di Microsoft Azure SDK.The storage emulator is available as part of the Microsoft Azure SDK. È anche possibile installare l'emulatore di archiviazione usando il programma di installazione autonomo (download diretto).You can also install the storage emulator by using the standalone installer (direct download). Per installare l'emulatore di archiviazione, è necessario avere privilegi di amministratore nel computer.To install the storage emulator, you must have administrative privileges on your computer.

L'emulatore di archiviazione attualmente viene eseguito solo in Windows.The storage emulator currently runs only on Windows. Se è necessario un emulatore di archiviazione per Linux, un'opzione è l'emulatore di archiviazione open source gestito dalla community azzurrite.If you need a storage emulator for Linux, one option is the community maintained, open-source storage emulator Azurite.

Nota

I dati creati in una versione dell'emulatore di archiviazione non sono necessariamente accessibili quando si usa una versione diversa.Data created in one version of the storage emulator is not guaranteed to be accessible when using a different version. Se è necessario rendere persistenti i dati a lungo termine, è consigliabile archiviare i dati in un account di archiviazione di Azure invece che nell'emulatore di archiviazione.If you need to persist your data for the long term, we recommended that you store that data in an Azure storage account, rather than in the storage emulator.

L'emulatore di archiviazione dipende dalle versioni specifiche delle librerie OData.The storage emulator depends on specific versions of the OData libraries. La sostituzione delle DLL OData usate dall'emulatore di archiviazione con altre versioni non è supportata e può provocare un comportamento imprevisto.Replacing the OData DLLs used by the storage emulator with other versions is unsupported, and may cause unexpected behavior. Tutte le versioni di OData supportate dal servizio di archiviazione possono tuttavia essere usate per inviare richieste all'emulatore.However, any version of OData supported by the storage service may be used to send requests to the emulator.

Come funziona l'emulatore di archiviazioneHow the storage emulator works

L'emulatore di archiviazione usa un'istanza locale di Microsoft SQL Server 2012 Express local DB per emulare i servizi di archiviazione di Azure.The storage emulator uses a local Microsoft SQL Server 2012 Express LocalDB instance to emulate Azure storage services. È possibile scegliere di configurare l'emulatore di archiviazione per accedere a un'istanza locale di SQL Server anziché l'istanza LocalDB.You can choose to configure the storage emulator to access a local instance of SQL Server instead of the LocalDB instance. Per altre informazioni, vedere la sezione avviare e inizializzare l'emulatore di archiviazione più avanti in questo articolo.See the Start and initialize the storage emulator section later in this article to learn more.

L'emulatore di archiviazione si connette a SQL Server o a LocalDB usando l'autenticazione Windows.The storage emulator connects to SQL Server or LocalDB using Windows authentication.

Esistono alcune differenze a livello di funzionalità tra l'emulatore di archiviazione e i servizi di archiviazione di Azure.Some differences in functionality exist between the storage emulator and Azure storage services. Per altre informazioni su queste differenze, vedere la sezione Differenze tra l'emulatore di archiviazione e Archiviazione di Azure più avanti in questo articolo.For more information about these differences, see the Differences between the storage emulator and Azure Storage section later in this article.

Avviare e inizializzare l'emulatore di archiviazioneStart and initialize the storage emulator

Per avviare l'emulatore di archiviazione di Azure:To start the Azure storage emulator:

  1. Fare clic sul pulsante Start oppure premere il tasto WINDOWS.Select the Start button or press the Windows key.
  2. Iniziare a digitare Azure Storage Emulator.Begin typing Azure Storage Emulator.
  3. Selezionare l'emulatore nell'elenco delle applicazioni visualizzate.Select the emulator from the list of displayed applications.

All'avvio dell'emulatore di archiviazione, viene visualizzata una finestra del prompt dei comandi.When the storage emulator starts, a Command Prompt window will appear. È possibile usare questa finestra della console per avviare e arrestare l'emulatore di archiviazione.You can use this console window to start and stop the storage emulator. È anche possibile cancellare i dati, ottenere lo stato e inizializzare l'emulatore dal prompt dei comandi.You can also clear data, get status, and initialize the emulator from the command prompt. Per altre informazioni, vedere la sezione Informazioni di riferimento sullo strumento da riga di comando dell'emulatore di archiviazione più avanti in questo articolo.For more information, see the Storage emulator command-line tool reference section later in this article.

Nota

È possibile che l'emulatore di archiviazione di Azure non venga avviato correttamente se nel sistema è in esecuzione un altro emulatore di archiviazione, ad esempio azzurrite.The Azure storage emulator may not start correctly if another storage emulator, such as Azurite, is running on the system.

Quando l'emulatore è in esecuzione, verrà visualizzata un'icona nell'area di notifica della barra delle applicazioni di Windows.When the emulator is running, you'll see an icon in the Windows taskbar notification area.

Quando si chiude la finestra del prompt dei comandi dell'emulatore di archiviazione, questo resta in esecuzione.When you close the storage emulator Command Prompt window, the storage emulator will continue to run. Per visualizzare di nuovo la finestra della console dell'emulatore di archiviazione, eseguire la procedura precedente come per avviare l'emulatore di archiviazione.To bring up the Storage Emulator console window again, follow the preceding steps as if starting the storage emulator.

La prima volta che si esegue l'emulatore di archiviazione, l'ambiente di archiviazione locale viene inizializzato automaticamente.The first time you run the storage emulator, the local storage environment is initialized for you. Il processo di inizializzazione crea un database in LocalDB e riserva le porte HTTP per ogni servizio di archiviazione locale.The initialization process creates a database in LocalDB and reserves HTTP ports for each local storage service.

Per impostazione predefinita, l'emulatore di archiviazione viene installato in C:\Program Files (x86)\Microsoft SDKs\Azure\Storage Emulator.The storage emulator is installed by default to C:\Program Files (x86)\Microsoft SDKs\Azure\Storage Emulator.

Suggerimento

È possibile usare Microsoft Azure Storage Explorer per usare risorse dell'emulatore di archiviazione locale.You can use the Microsoft Azure Storage Explorer to work with local storage emulator resources. Cercare "(porte predefinite dell'emulatore) (chiave)" in "Local & attached" nell'albero delle risorse Storage Explorer dopo aver installato e avviato l'emulatore di archiviazione.Look for "(Emulator - Default Ports) (Key)" under "Local & Attached" in the Storage Explorer resources tree after you've installed and started the storage emulator.

Inizializzare l'emulatore di archiviazione per l'uso di un database SQL diversoInitialize the storage emulator to use a different SQL database

È possibile usare lo strumento della riga di comando Emulatore di archiviazione per inizializzare l'emulatore di archiviazione in modo che punti a un'istanza di database SQL diversa dall'istanza LocalDB predefinita:You can use the storage emulator command-line tool to initialize the storage emulator to point to a SQL database instance other than the default LocalDB instance:

  1. Aprire la finestra della console dell'emulatore di archiviazione come descritto nella sezione Avviare e inizializzare l'emulatore di archiviazione.Open the Storage Emulator console window as described in the Start and initialize the storage emulator section.

  2. Nella finestra della console digitare il comando seguente, dove <SQLServerInstance> è il nome dell'istanza di SQL Server.In the console window, type the following command, where <SQLServerInstance> is the name of the SQL Server instance. Per usare LocalDB, specificare (localdb)\MSSQLLocalDb come istanza di SQL Server.To use LocalDB, specify (localdb)\MSSQLLocalDb as the SQL Server instance.

    AzureStorageEmulator.exe init /server <SQLServerInstance>

    Per indicare all'emulatore di usare l'istanza di SQL Server predefinita, digitare il comando seguente:You can also use the following command, which directs the emulator to use the default SQL Server instance:

    AzureStorageEmulator.exe init /server .

    In alternativa, è possibile usare il comando seguente, che consente di inizializzare nuovamente l'istanza predefinita LocalDB:Or, you can use the following command, which reinitializes the database to the default LocalDB instance:

    AzureStorageEmulator.exe init /forceCreate

Per altre informazioni su questi comandi, vedere Informazioni di riferimento sullo strumento da riga di comando dell'emulatore di archiviazione.For more information about these commands, see Storage emulator command-line tool reference.

Suggerimento

È possibile usare Microsoft SQL Server Management Studio (SSMS) per gestire le istanze di SQL Server, inclusa l'installazione di LocalDB.You can use the Microsoft SQL Server Management Studio (SSMS) to manage your SQL Server instances, including the LocalDB installation. Nella finestra di dialogo Connetti al server di SMSS specificare (localdb)\MSSQLLocalDb nel campo Nome server per connettersi all'istanza di LocalDB.In the SMSS Connect to Server dialog, specify (localdb)\MSSQLLocalDb in the Server name: field to connect to the LocalDB instance.

Autenticazione delle richieste nell'emulatore di archiviazioneAuthenticating requests against the storage emulator

Dopo aver installato e avviato l'emulatore di archiviazione, è possibile testare il codice sull'emulatore.Once you've installed and started the storage emulator, you can test your code against it. Ogni richiesta effettuata sull'emulatore di archiviazione deve essere autorizzata, a meno che non si tratti di una richiesta anonima.Every request you make against the storage emulator must be authorized, unless it's an anonymous request. È possibile autorizzare le richieste nell'emulatore di archiviazione tramite l'autenticazione con chiave condivisa o con una firma di accesso condiviso (SAS, Shared Access Signature).You can authorize requests against the storage emulator using Shared Key authentication or with a shared access signature (SAS).

Autorizzazione con credenziali con chiave condivisaAuthorize with Shared Key credentials

L'emulatore di archiviazione supporta un singolo account fisso e una chiave di autenticazione nota per l’autenticazione con chiave condivisa.The storage emulator supports a single fixed account and a well-known authentication key for Shared Key authentication. Questo account e questa chiave sono le uniche credenziali con chiave condivisa consentite per l'utilizzo con l'emulatore di archiviazione.This account and key are the only Shared Key credentials permitted for use with the storage emulator. Sono:They are:

Account name: devstoreaccount1
Account key: Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==

Nota

La chiave di autenticazione supportata dall'emulatore di archiviazione è destinata solo al test della funzionalità del codice di autenticazione client.The authentication key supported by the storage emulator is intended only for testing the functionality of your client authentication code. Non viene utilizzata per eventuali scopi di sicurezza.It does not serve any security purpose. Non è possibile usare l'account di archiviazione di produzione e la chiave con l'emulatore di archiviazione.You cannot use your production storage account and key with the storage emulator. Non usare l'account di sviluppo con dati di produzione.You should not use the development account with production data.

L'emulatore di archiviazione supporta solo la connessione tramite HTTP.The storage emulator supports connection via HTTP only. HTTPS è tuttavia il protocollo consigliato per accedere alle risorse in un account di archiviazione di Azure di produzione.However, HTTPS is the recommended protocol for accessing resources in a production Azure storage account.

Connettersi all'account dell'emulatore utilizzando un collegamentoConnect to the emulator account using a shortcut

Il modo più semplice per eseguire la connessione all'emulatore di archiviazione dall'applicazione consiste nel configurare una stringa di connessione nel file di configurazione dell'applicazione che fa riferimento al collegamento UseDevelopmentStorage=true.The easiest way to connect to the storage emulator from your application is to configure a connection string in your application's configuration file that references the shortcut UseDevelopmentStorage=true. Di seguito viene riportato un esempio di stringa di connessione all'emulatore di archiviazione in un file app.config:Here's an example of a connection string to the storage emulator in an app.config file:

<appSettings>
  <add key="StorageConnectionString" value="UseDevelopmentStorage=true" />
</appSettings>

Connettersi all'account dell'emulatore utilizzando il nome account ben noto e la chiaveConnect to the emulator account using the well-known account name and key

Per creare una stringa di connessione che fa riferimento al nome e alla chiave dell'account emulatore, è necessario specificare gli endpoint per ciascuno dei servizi che si vogliono usare dall'emulatore nella stringa di connessione.To create a connection string that references the emulator account name and key, you must specify the endpoints for each of the services you wish to use from the emulator in the connection string. Ciò è necessario per fare in modo che la stringa di connessione faccia riferimento agli endpoint dell’emulatore, che variano rispetto a quelli per un account di archiviazione di produzione.This is necessary so that the connection string will reference the emulator endpoints, which are different than those for a production storage account. Ad esempio, il valore della stringa di connessione risulterà simile al seguente:For example, the value of your connection string will look like this:

DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;
AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;
BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;
TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;
QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;

Questo valore è identico al collegamento mostrato in precedenza, UseDevelopmentStorage=true.This value is identical to the shortcut shown above, UseDevelopmentStorage=true.

Specificare un proxy HTTPSpecify an HTTP proxy

È inoltre possibile specificare un proxy HTTP da usare quando si esegue il test del servizio nell'emulatore di archiviazione.You can also specify an HTTP proxy to use when you're testing your service against the storage emulator. Ciò può essere utile per osservare le richieste HTTP e le risposte in fase di debug delle operazioni nei servizi di archiviazione.This can be useful for observing HTTP requests and responses while you're debugging operations against the storage services. Per specificare un proxy, aggiungere DevelopmentStorageProxyUri l'opzione alla stringa di connessione, e impostarne il valore sull'URI del proxy.To specify a proxy, add the DevelopmentStorageProxyUri option to the connection string, and set its value to the proxy URI. Ad esempio, di seguito viene presentata una stringa di connessione che punta all'emulatore di archiviazione e configura un proxy HTTP:For example, here is a connection string that points to the storage emulator and configures an HTTP proxy:

UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://myProxyUri

Per altre informazioni sulle stringhe di connessione, vedere Configurare le stringhe di connessione di Archiviazione di Azure.For more information on connection strings, see Configure Azure Storage connection strings.

Autorizzazione con una firma di accesso condivisoAuthorize with a shared access signature

Nota

Questo articolo è stato aggiornato per usare il nuovo modulo Az di Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. È comunque possibile usare il modulo AzureRM, che continuerà a ricevere correzioni di bug almeno fino a dicembre 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Per altre informazioni sul nuovo modulo Az e sulla compatibilità di AzureRM, vedere Introduzione del nuovo modulo Az di Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Per istruzioni sull'installazione del modulo Az, vedere Installare Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Alcune librerie client dell'archiviazione di Azure, ad esempio la libreria Xamarin, supportano solo l'autenticazione con un token di firma di accesso condiviso.Some Azure storage client libraries, such as the Xamarin library, only support authentication with a shared access signature (SAS) token. È possibile creare il token SAS usando Storage Explorer o un'altra applicazione che supporta l'autenticazione con chiave condivisa.You can create the SAS token using Storage Explorer or another application that supports Shared Key authentication.

È anche possibile generare un token di firma di accesso condiviso usando Azure PowerShell.You can also generate a SAS token by using Azure PowerShell. L'esempio seguente genera un token di firma di accesso condiviso con autorizzazioni complete per un contenitore BLOB:The following example generates a SAS token with full permissions to a blob container:

  1. Installare Azure PowerShell se non è già stato fatto. È consigliabile usare la versione più recente dei cmdlet di PowerShell.Install Azure PowerShell if you haven't already (using the latest version of the Azure PowerShell cmdlets is recommended). Per le istruzioni di installazione, vedere Installare e configurare Azure PowerShell.For installation instructions, see Install and configure Azure PowerShell.
  2. Aprire Azure PowerShell ed eseguire i comandi seguenti, sostituendo CONTAINER_NAME con il nome scelto:Open Azure PowerShell and run the following commands, replacing CONTAINER_NAME with a name of your choosing:
$context = New-AzStorageContext -Local

New-AzStorageContainer CONTAINER_NAME -Permission Off -Context $context

$now = Get-Date

New-AzStorageContainerSASToken -Name CONTAINER_NAME -Permission rwdl -ExpiryTime $now.AddDays(1.0) -Context $context -FullUri

L'URI della firma di accesso condiviso risultante per il nuovo contenitore sarà simile a:The resulting shared access signature URI for the new container should be similar to:

http://127.0.0.1:10000/devstoreaccount1/sascontainer?sv=2012-02-12&se=2015-07-08T00%3A12%3A08Z&sr=c&sp=wl&sig=t%2BbzU9%2B7ry4okULN9S0wst%2F8MCUhTjrHyV9rDNLSe8g%3Dsss

La firma di accesso condiviso creata con questo esempio è valida per un giorno.The shared access signature created with this example is valid for one day. La firma concede l'accesso completo (lettura, scrittura, eliminazione ed elenco) ai BLOB all'interno del contenitore.The signature grants full access (read, write, delete, list) to blobs within the container.

Per altre informazioni sulle firme di accesso condiviso, vedere concedere l'accesso limitato alle risorse di archiviazione di Azure usando le firme di accesso condiviso (SAS).For more information on shared access signatures, see Grant limited access to Azure Storage resources using shared access signatures (SAS).

Indirizzamento delle risorse nell'emulatore di archiviazioneAddressing resources in the storage emulator

Gli endpoint di servizio per l'emulatore di archiviazione sono diversi dagli endpoint per un account di archiviazione di Azure.The service endpoints for the storage emulator are different from the endpoints for an Azure storage account. Il computer locale non esegue la risoluzione dei nomi di dominio, che richiede che gli endpoint dell'emulatore di archiviazione siano indirizzi locali.The local computer doesn't do domain name resolution, requiring the storage emulator endpoints to be local addresses.

Quando si indirizza una risorsa in un account di archiviazione di Azure, usare lo schema seguente.When you address a resource in an Azure storage account, you use the following scheme. Il nome dell'account fa parte del nome host dell'URI e la risorsa indirizzata fa parte del percorso URI:The account name is part of the URI host name, and the resource being addressed is part of the URI path:

<http|https>://<account-name>.<service-name>.core.windows.net/<resource-path>

Ad esempio, l'URI seguente è un indirizzo valido per un BLOB in un account di archiviazione di Azure:For example, the following URI is a valid address for a blob in an Azure storage account:

https://myaccount.blob.core.windows.net/mycontainer/myblob.txt

Poiché il computer locale non esegue la risoluzione dei nomi di dominio, il nome dell'account fa parte del percorso URI anziché del nome host.Because the local computer doesn't do domain name resolution, the account name is part of the URI path instead of the host name. Per una risorsa in esecuzione nell'emulatore di archiviazione, usare il formato URI seguente:Use the following URI format for a resource in the storage emulator:

http://<local-machine-address>:<port>/<account-name>/<resource-path>

Ad esempio, l'indirizzo seguente può essere usato per accedere a un BLOB nell'emulatore di archiviazione:For example, the following address might be used for accessing a blob in the storage emulator:

http://127.0.0.1:10000/myaccount/mycontainer/myblob.txt

Gli endpoint di servizio per l'emulatore di archiviazione sono:The service endpoints for the storage emulator are:

  • Servizio BLOB: http://127.0.0.1:10000/<account-name>/<resource-path>Blob service: http://127.0.0.1:10000/<account-name>/<resource-path>
  • Servizio di accodamento: http://127.0.0.1:10001/<account-name>/<resource-path>Queue service: http://127.0.0.1:10001/<account-name>/<resource-path>
  • Servizio tabelle: http://127.0.0.1:10002/<account-name>/<resource-path>Table service: http://127.0.0.1:10002/<account-name>/<resource-path>

Indirizzamento dell'account secondario con RA-GRSAddressing the account secondary with RA-GRS

A partire dalla versione 3.1, l'emulatore di archiviazione supporta la replica con ridondanza geografica e accesso in lettura (RA-GRS).Beginning with version 3.1, the storage emulator supports read-access geo-redundant replication (RA-GRS). È possibile accedere alla posizione secondaria aggiungendo-Secondary al nome dell'account.You can access the secondary location by appending -secondary to the account name. Ad esempio, l'indirizzo seguente può essere usato per accedere a un BLOB mediante il percorso secondario di sola lettura nell'emulatore di archiviazione:For example, the following address might be used for accessing a blob using the read-only secondary in the storage emulator:

http://127.0.0.1:10000/myaccount-secondary/mycontainer/myblob.txt

Nota

Per l'accesso a livello di codice al percorso secondario con l'emulatore di archiviazione, usare la libreria client di archiviazione per .NET versione 3.2 o successiva.For programmatic access to the secondary with the storage emulator, use the Storage Client Library for .NET version 3.2 or later. Per i dettagli, vedere Libreria client di Archiviazione di Microsoft Azure per .NET .See the Microsoft Azure Storage Client Library for .NET for details.

Riferimenti allo strumento da riga di comando emulatore di archiviazioneStorage emulator command-line tool reference

A partire dalla versione 3.0, quando si avvia l'emulatore di archiviazione viene visualizzata una finestra della console.Starting in version 3.0, a console window is displayed when you start the Storage Emulator. Usare la riga di comando nella finestra della console per avviare e arrestare l'emulatore.Use the command line in the console window to start and stop the emulator. È anche possibile eseguire una query per ottenere lo stato ed eseguire altre operazioni dalla riga di comando.You can also query for status and do other operations from the command line.

Nota

Se è installato l'emulatore di calcolo di Microsoft Azure, viene visualizzata un'icona nella barra delle applicazioni quando si avvia l'emulatore di archiviazione.If you have the Microsoft Azure compute emulator installed, a system tray icon appears when you launch the Storage Emulator. Fare clic con il pulsante destro del mouse sull'icona per visualizzare un menu che include una modalità grafica per avviare e arrestare l'emulatore di archiviazione.Right-click on the icon to reveal a menu that provides a graphical way to start and stop the Storage Emulator.

Sintassi della riga di comandoCommand-line syntax

AzureStorageEmulator.exe [start] [stop] [status] [clear] [init] [help]

OpzioniOptions

Per visualizzare l'elenco di opzioni, digitare /help al prompt dei comandi.To view the list of options, type /help at the command prompt.

OpzioneOption DescriptionDescription ComandoCommand ArgomentiArguments
IniziaStart Avvia l'emulatore di archiviazione.Starts up the storage emulator. AzureStorageEmulator.exe start [-inprocess] -Rielaborare: avviare l'emulatore nel processo corrente anziché creare un nuovo processo.-Reprocess: Start the emulator in the current process instead of creating a new process.
StopStop Interrompe l'emulatore di archiviazione.Stops the storage emulator. AzureStorageEmulator.exe stop
StatusStatus Stampa lo stato dell'emulatore di archiviazione.Prints the status of the storage emulator. AzureStorageEmulator.exe status
CancellaClear Cancella i dati in tutti i servizi specificati nella riga di comando.Clears the data in all services specified on the command line. AzureStorageEmulator.exe clear [blob] [table] [queue] [all] blob: cancella i dati BLOB.blob: Clears blob data.
queue: cancella i dati della coda.queue: Clears queue data.
table: cancella i dati delle tabelle.table: Clears table data.
all: cancella tutti i dati in tutti i servizi.all: Clears all data in all services.
InitInit Esegue l'inizializzazione una sola volta per configurare l'emulatore.Does one-time initialization to set up the emulator. AzureStorageEmulator.exe init [-server serverName] [-sqlinstance instanceName] [-forcecreate|-skipcreate] [-reserveports|-unreserveports] [-inprocess] -server serverName\instanceName: specifica il server che ospita l'istanza di SQL.-server serverName\instanceName: Specifies the server hosting the SQL instance.
-sqlinstance instanceName: specifica il nome dell'istanza di SQL da usare.-sqlinstance instanceName: Specifies the name of the SQL instance to be used in the default server instance.
-forcecreate: forza la creazione del database SQL, anche se già esistente.-forcecreate: Forces creation of the SQL database, even if it already exists.
-skipcreate: ignora la creazione del database SQL.-skipcreate: Skips creation of the SQL database. Questa opzione ha la precedenza sull'opzione -forcecreate.This takes precedence over -forcecreate.
-reserveports: tenta di prenotare le porte HTTP associate ai servizi.-reserveports: Attempts to reserve the HTTP ports associated with the services.
-unreserveports: tenta di rimuovere le prenotazioni delle porte HTTP associate ai servizi.-unreserveports: Attempts to remove reservations for the HTTP ports associated with the services. Questa opzione ha la precedenza sull'opzione -reserveports.This takes precedence over -reserveports.
-inprocess: esegue l'inizializzazione nel processo corrente anziché generare un nuovo processo.-inprocess: Performs initialization in the current process instead of spawning a new process. Se si modificano le prenotazioni delle porte, è necessario avviare il processo corrente con autorizzazioni elevate.The current process must be launched with elevated permissions if changing port reservations.

Differenze tra l'emulatore di archiviazione e Archiviazione di AzureDifferences between the storage emulator and Azure Storage

Poiché l'emulatore di archiviazione è un ambiente emulato locale, esistono differenze tra l'uso dell'emulatore e un account di archiviazione di Azure nel cloud:Because the storage emulator is a local emulated environment, there are differences between using the emulator and an Azure storage account in the cloud:

  • L'emulatore di archiviazione supporta solo un singolo account fisso e una chiave di autenticazione nota.The storage emulator supports only a single fixed account and a well-known authentication key.
  • L'emulatore di archiviazione non è un servizio di archiviazione scalabile e non supporta un numero elevato di client simultanei.The storage emulator isn't a scalable storage service and doesn't support a large number of concurrent clients.
  • Come descritto in Indirizzamento delle risorse nell'emulatore di archiviazione, le risorse sono indirizzate diversamente nell'emulatore di archiviazione rispetto a un account di archiviazione di Azure.As described in Addressing resources in the storage emulator, resources are addressed differently in the storage emulator versus an Azure storage account. La differenza è dovuta al fatto che la risoluzione dei nomi di dominio è disponibile nel cloud, ma non nel computer locale.The difference is because domain name resolution is available in the cloud but not on the local computer.
  • A partire dalla versione 3.1, l'account dell'emulatore di archiviazione supporta RA-GRS (replica con ridondanza geografica in sola lettura).Beginning with version 3.1, the storage emulator account supports read-access geo-redundant replication (RA-GRS). Nell'emulatore tutti gli account hanno RA-GRS abilitato e non esiste mai alcun ritardo tra le repliche primarie e secondarie.In the emulator, all accounts have RA-GRS enabled and there's never any lag between the primary and secondary replicas. Le operazioni Get Blob Service Stats, Get Queue Service Stats e Get Table Service Stats sono supportate per l'account secondario e restituiscono sempre il valore dell'elemento di risposta LastSyncTime come ora corrente in base al database SQL sottostante.The Get Blob Service Stats, Get Queue Service Stats, and Get Table Service Stats operations are supported on the account secondary and will always return the value of the LastSyncTime response element as the current time according to the underlying SQL database.
  • Gli endpoint del servizio file e del protocollo SMB non sono attualmente supportati nell'emulatore di archiviazione.The File service and SMB protocol service endpoints aren't currently supported in the storage emulator.
  • Se si usa una versione dei servizi di archiviazione che non è supportata dall'emulatore, l'emulatore restituisce un errore VersionNotSupportedByEmulator (codice di stato HTTP 400-richiesta non valida).If you use a version of the storage services that is not supported by the emulator, the emulator returns a VersionNotSupportedByEmulator error (HTTP status code 400 - Bad Request).

Differenze per l'archiviazione BLOBDifferences for Blob storage

All'archiviazione BLOB nell'emulatore si applicano le seguenti differenze:The following differences apply to Blob storage in the emulator:

  • L'emulatore di archiviazione supporta solo dimensioni BLOB fino a 2 GB.The storage emulator only supports blob sizes up to 2 GB.
  • La lunghezza massima di un nome BLOB nell'emulatore di archiviazione è 256 caratteri, mentre la lunghezza massima di un nome BLOB in Archiviazione di Azure è di 1024 caratteri.The maximum length of a blob name in the storage emulator is 256 characters, while the maximum length of a blob name in Azure Storage is 1024 characters.
  • La copia incrementale consente di copiare gli snapshot dai BLOB sovrascritti, ma viene restituito un errore del servizio.Incremental copy allows snapshots from overwritten blobs to be copied, which returns a failure on the service.
  • Il controllo Get page Ranges diff non funziona tra gli snapshot copiati con il BLOB di copia incrementale.Get Page Ranges Diff doesn't work between snapshots copied using Incremental Copy Blob.
  • Un'operazione Put Blob può avere esito positivo su un BLOB esistente nell'emulatore di archiviazione con un lease attivo anche se l'ID lease non è stato specificato nella richiesta.A Put Blob operation may succeed against a blob that exists in the storage emulator with an active lease even if the lease ID hasn't been specified in the request.
  • Le operazioni del BLOB di accodamento non sono supportate dall'emulatore.Append Blob operations are not supported by the emulator. Se si tenta un'operazione su un blob di Accodamento restituisce un errore FeatureNotSupportedByEmulator (codice di stato HTTP 400 - richiesta non valida).Attempting an operation on an append blob returns a FeatureNotSupportedByEmulator error (HTTP status code 400 - Bad Request).

Differenze per l'archiviazione tabelleDifferences for Table storage

All'archiviazione tabelle nell'emulatore si applicano le seguenti differenze:The following differences apply to Table storage in the emulator:

  • Le proprietà di data nel servizio tabelle nell'emulatore di archiviazione supportano solo l'intervallo supportato da SQL Server 2005 (devono essere successive al 1 ° gennaio 1753).Date properties in the Table service in the storage emulator support only the range supported by SQL Server 2005 (they're required to be later than January 1, 1753). Tutte le date precedenti a 1 gennaio 1753 vengono modificate in questo valore.All dates before January 1, 1753 are changed to this value. La precisione delle date è limitata alla precisione di SQL Server 2005, ovvero le date sono precise a 1/300 di secondo.The precision of dates is limited to the precision of SQL Server 2005, meaning that dates are precise to 1/300th of a second.
  • L'emulatore di archiviazione supporta valori di proprietà chiave di riga e chiave di partizione con dimensioni minori di 512 byte ognuno.The storage emulator supports partition key and row key property values of less than 512 bytes each. Le dimensioni totali del nome dell'account, del nome della tabella e dei nomi delle proprietà chiave non possono superare 900 byte.The total size of the account name, table name, and key property names together can't exceed 900 bytes.
  • Le dimensioni totali di una riga in una tabella nell'emulatore di archiviazione sono limitate a meno di 1 MB.The total size of a row in a table in the storage emulator is limited to less than 1 MB.
  • Nell'emulatore di archiviazione le proprietà con tipo di dati Edm.Guid o Edm.Binary supportano solo gli operatori di confronto Equal (eq) e NotEqual (ne) nelle stringhe di filtro delle query.In the storage emulator, properties of data type Edm.Guid or Edm.Binary support only the Equal (eq) and NotEqual (ne) comparison operators in query filter strings.

Differenze per l'archiviazione di accodamentoDifferences for Queue storage

Non esistono differenze specifiche per l'archiviazione di accodamento nell'emulatore.There are no differences specific to Queue storage in the emulator.

Note sulla versione dell'emulatore di archiviazioneStorage emulator release notes

Versione 5,10Version 5.10

  • L'emulatore di archiviazione non rifiuterà la versione 2019-07-07 dei servizi di archiviazione sugli endpoint di servizio BLOB, di Accodamento e tabelle.The storage emulator won't reject version 2019-07-07 of the storage services on Blob, Queue, and Table service endpoints.

Versione 5,9Version 5.9

  • L'emulatore di archiviazione non rifiuterà la versione 2019-02-02 dei servizi di archiviazione sugli endpoint di servizio BLOB, di Accodamento e tabelle.The storage emulator won't reject version 2019-02-02 of the storage services on Blob, Queue, and Table service endpoints.

Versione 5,8Version 5.8

  • L'emulatore di archiviazione non rifiuterà la versione 2018-11-09 dei servizi di archiviazione sugli endpoint di servizio BLOB, di Accodamento e tabelle.The storage emulator won't reject version 2018-11-09 of the storage services on Blob, Queue, and Table service endpoints.

Versione 5.7Version 5.7

  • È stato risolto un bug che causava l'arresto del sistema quando era abilitata la registrazione.Fixed a bug that would cause a crash if logging was enabled.

Versione 5.6Version 5.6

  • L'emulatore di archiviazione supporta ora la versione 2018-03-28 dei servizi di archiviazione per gli endpoint BLOB, della coda e del servizio tabelle.The storage emulator now supports version 2018-03-28 of the storage services on Blob, Queue, and Table service endpoints.

Versione 5.5Version 5.5

  • L'emulatore di archiviazione supporta ora la versione 2017-11-09 dei servizi di archiviazione per gli endpoint BLOB, della coda e del servizio tabelle.The storage emulator now supports version 2017-11-09 of the storage services on Blob, Queue, and Table service endpoints.
  • È stato aggiunto il supporto per la proprietà Created dei BLOB, che restituisce l'ora di creazione di un BLOB.Support has been added for the blob Created property, which returns the blob's creation time.

Versione 5.4Version 5.4

  • Per migliorare la stabilità dell'installazione, l'emulatore non tenta più di riservare le porte in fase di installazione.To improve installation stability, the emulator no longer attempts to reserve ports at install time. Se si desidera prenotare le porte, utilizzare l'opzione -reserveports del comando init per specificarle.If you want port reservations, use the -reserveports option of the init command to specify them.

Versione 5.3Version 5.3

  • L'emulatore di archiviazione supporta ora la versione 2017-07-29 dei servizi di archiviazione per gli endpoint BLOB, della coda e del servizio tabelle.The storage emulator now supports version 2017-07-29 of the storage services on Blob, Queue, and Table service endpoints.

Versione 5.2Version 5.2

  • L'emulatore di archiviazione supporta ora la versione 2017-04-17 dei servizi di archiviazione per gli endpoint dei servizi BLOB, di accodamento e tabelle.The storage emulator now supports version 2017-04-17 of the storage services on Blob, Queue, and Table service endpoints.
  • Correzione di un bug in cui i valori delle proprietà della tabella non venivano codificati correttamente.Fixed a bug where table property values weren't being properly encoded.

Versione 5.1Version 5.1

  • È stato risolto un bug per cui l'emulatore di archiviazione restituiva l'intestazione DataServiceVersion in risposte in cui il servizio non era presente.Fixed a bug where the storage emulator was returning the DataServiceVersion header in some responses where the service was not.

Versione 5.0Version 5.0

  • Il programma di installazione dell'emulatore di archiviazione non verifica l'eventuale presenza di installazioni MSSQL e .NET Framework esistenti.The storage emulator installer no longer checks for existing MSSQL and .NET Framework installs.
  • Il programma di installazione dell'emulatore di archiviazione non crea più il database come parte del processo di installazione.The storage emulator installer no longer creates the database as part of install. Se necessario, il database verrà comunque creato come parte del processo di avvio.Database will still be created if needed as part of startup.
  • Per la creazione del database non è più necessaria l'elevazione dei privilegi.Database creation no longer requires elevation.
  • Per l'avvio non sono più necessarie prenotazioni di porte.Port reservations are no longer needed for startup.
  • Aggiunge a init le opzioni seguenti: -reserveports (è richiesta l'elevazione), -unreserveports(è richiesta l'elevazione) e -skipcreate.Adds the following options to init: -reserveports (requires elevation), -unreserveports (requires elevation), -skipcreate.
  • L'opzione dell'interfaccia utente dell'emulatore di archiviazione nell'icona della barra delle applicazioni avvia ora l'interfaccia della riga di comando.The Storage Emulator UI option on the system tray icon now launches the command-line interface. L'interfaccia utente grafica precedente non è più disponibile.The old GUI is no longer available.
  • Alcune DLL sono state rimosse o rinominate.Some DLLs have been removed or renamed.

Versione 4.6Version 4.6

  • L'emulatore di archiviazione supporta ora la versione 2016-05-31 dei servizi di archiviazione per gli endpoint di servizio BLOB, di accodamento e tabelle.The storage emulator now supports version 2016-05-31 of the storage services on Blob, Queue, and Table service endpoints.

Versione 4.5Version 4.5

  • Correzione di un bug che causava l'esito negativo dell'installazione e dell'inizializzazione quando il database di backup viene rinominato.Fixed a bug that caused installation and initialization to fail when the backing database is renamed.

Versione 4.4Version 4.4

  • L'emulatore di archiviazione supporta ora la versione 2015-12-11 dei servizi di archiviazione per gli endpoint dei servizi BLOB, di accodamento e tabelle.The storage emulator now supports version 2015-12-11 of the storage services on Blob, Queue, and Table service endpoints.
  • L'operazione di Garbage Collection dell'emulatore di archiviazione dei dati BLOB è ora più efficiente quando si lavora con un numero elevato di BLOB.The storage emulator's garbage collection of blob data is now more efficient when dealing with large numbers of blobs.
  • Risolto un bug che ha causato la convalida del contenitore ACL XML in modo leggermente diverso dal servizio di archiviazione.Fixed a bug that caused container ACL XML to be validated slightly differently from how the storage service does it.
  • Risolto un bug che a volte ha causato la segnalazione di valori DateTime max e min nel fuso orario non corretto.Fixed a bug that sometimes caused max and min DateTime values to be reported in the incorrect time zone.

Versione 4.3Version 4.3

  • L'emulatore di archiviazione supporta ora la versione 2015-07-08 dei servizi di archiviazione su endpoint di servizio BLOB, di accodamento e tabelle.The storage emulator now supports version 2015-07-08 of the storage services on Blob, Queue, and Table service endpoints.

Versione 4.2Version 4.2

  • L'emulatore di archiviazione supporta ora la versione 2015-04-05 dei servizi di archiviazione per gli endpoint dei servizi BLOB, di accodamento e tabelle.The storage emulator now supports version 2015-04-05 of the storage services on Blob, Queue, and Table service endpoints.

Versione 4.1Version 4.1

  • L'emulatore di archiviazione supporta ora la versione 2015-02-21 dei servizi di archiviazione per gli endpoint di servizio BLOB, di Accodamento e tabelle.The storage emulator now supports version 2015-02-21 of the storage services on Blob, Queue, and Table service endpoints. Non supporta le nuove funzionalità BLOB di Accodamento.It doesn't support the new Append Blob features.
  • L'emulatore ora restituisce un messaggio di errore significativo per le versioni non supportate dei servizi di archiviazione.The emulator now returns a meaningful error message for unsupported versions of storage services. È consigliabile utilizzare la versione più recente dell'emulatore.We recommend using the latest version of the emulator. Se viene ricevuto un errore VersionNotSupportedByEmulator (codice di stato HTTP 400-richiesta non valida), scaricare la versione più recente dell'emulatore.If you get a VersionNotSupportedByEmulator error (HTTP status code 400 - Bad Request), download the latest version of the emulator.
  • Sistemare un bug in cui un race condition ha fatto sì che i dati di entità della tabella non siano corretti durante le operazioni di fusione simultanee.Fixed a bug wherein a race condition caused table entity data to be incorrect during concurrent merge operations.

Versione 4.0Version 4.0

  • L'emulatore di archiviazione eseguibile è stato rinominato in AzureStorageEmulator.exe.The storage emulator executable has been renamed to AzureStorageEmulator.exe.

Versione 3.2Version 3.2

  • L'emulatore di archiviazione supporta ora la versione 2014-02-14 dei servizi di archiviazione per gli endpoint dei servizi BLOB, di accodamento e tabelle.The storage emulator now supports version 2014-02-14 of the storage services on Blob, Queue, and Table service endpoints. Gli endpoint del servizio file non sono attualmente supportati nell'emulatore di archiviazione.File service endpoints aren't currently supported in the storage emulator. Vedere Controllo delle versioni per i servizi di archiviazione Azure per informazioni dettagliate sulla versione 2014-02-14.See Versioning for the Azure Storage Services for details about version 2014-02-14.

Versione 3.1Version 3.1

  • Il servizio di archiviazione con ridondanza geografica e accesso in lettura (RA-GRS) è ora supportato nell'emulatore di archiviazione.Read-access geo-redundant storage (RA-GRS) is now supported in the storage emulator. Le API Get Blob Service Stats, Get Queue Service Stats e Get Table Service Stats sono supportate per l'account secondario e restituiscono sempre il valore dell'elemento di risposta LastSyncTime come ora corrente in base al database SQL sottostante.The Get Blob Service Stats, Get Queue Service Stats, and Get Table Service Stats APIs are supported for the account secondary and will always return the value of the LastSyncTime response element as the current time according to the underlying SQL database. Per l'accesso a livello di codice al percorso secondario con l'emulatore di archiviazione, usare la libreria client di archiviazione per .NET versione 3.2 o successiva.For programmatic access to the secondary with the storage emulator, use the Storage Client Library for .NET version 3.2 or later. Per i dettagli, vedere il materiale di riferimento della libreria client di archiviazione di Microsoft Azure per .NET.See the Microsoft Azure Storage Client Library for .NET Reference for details.

Versione 3.0Version 3.0

  • L'emulatore di archiviazione di Azure non è più disponibile nello stesso pacchetto dell'emulatore di calcolo.The Azure storage emulator is no longer shipped in the same package as the compute emulator.
  • L'interfaccia utente grafica dell'emulatore di archiviazione è deprecata.The storage emulator graphical user interface is deprecated. È stata sostituita da un'interfaccia della riga di comando gestibile tramite script.It has been replaced by a scriptable command-line interface. Per informazioni dettagliate sull'interfaccia della riga di comando, vedere le informazioni di riferimento sullo strumento da riga di comando dell'emulatore di archiviazione.For details on the command-line interface, see Storage Emulator Command-Line Tool Reference. L'interfaccia grafica continuerà a essere presente nella versione 3.0, ma è possibile accedervi solo quando è installato l'emulatore di calcolo facendo clic con il pulsante destro del mouse sull'icona della barra delle applicazioni e selezionando Mostra interfaccia utente emulatore di archiviazione.The graphical interface will continue to be present in version 3.0, but it can only be accessed when the Compute Emulator is installed by right-clicking on the system tray icon and selecting Show Storage Emulator UI.
  • La versione 2013-08-15 dei servizi di archiviazione di Azure è ora completamente supportata.Version 2013-08-15 of the Azure storage services is now fully supported. (In precedenza questa versione era supportata solo dalla versione 2.2.1 dell'emulatore di archiviazione di anteprima.)(Previously this version was only supported by Storage Emulator version 2.2.1 Preview.)

Passaggi successiviNext steps