Verwenden des Azure-Speicheremulators für Entwicklung und TestsUse the Azure storage emulator for development and testing

Der Microsoft Azure-Speicheremulator bietet eine lokale Umgebung, die die Azure-Blob-, -Warteschlangen- und -Tabellendienste für Entwicklungszwecke emuliert.The Microsoft Azure storage emulator provides a local environment that emulates the Azure Blob, Queue, and Table services for development purposes. Durch Verwendung des Speicheremulators können Sie die Anwendung bezüglich der Speicherdienste lokal testen, ohne ein Azure-Abonnement zu erwerben oder sonstige Kosten zu verursachen.Using the storage emulator, you can test your application against the storage services locally, without creating an Azure subscription or incurring any costs. Wenn Sie mit der Funktion der Anwendung im Emulator zufrieden sind, können Sie zur Verwendung eines Azure-Speicherkontos in der Cloud wechseln.When you're satisfied with how your application is working in the emulator, you can switch to using an Azure storage account in the cloud.

Abrufen des SpeicheremulatorsGet the storage emulator

Der Speicheremulator ist als Teil des Microsoft Azure-SDKverfügbar.The storage emulator is available as part of the Microsoft Azure SDK. Sie können den Speicheremulator auch mithilfe des eigenständigen Installationsprogramms installieren (direkter Download).You can also install the storage emulator by using the standalone installer (direct download). Zum Installieren des Speicheremulators benötigen Sie Administratorrechte auf Ihrem Computer.To install the storage emulator, you must have administrative privileges on your computer.

Der Speicheremulator wird derzeit nur unter Windows ausgeführt.The storage emulator currently runs only on Windows. Eine Option für diejenigen, die einen Speicheremulator für Linux in Betracht ziehen, ist der von der Community unterstützte Open Source-Standardemulator Azurite.For those considering a storage emulator for Linux, one option is the community maintained, open source storage emulator Azurite.

Hinweis

Der Zugriff auf die Daten, die in einer bestimmten Version des Speicheremulators erstellt wurden, ist bei Verwendung einer anderen Version nicht garantiert.Data created in one version of the storage emulator is not guaranteed to be accessible when using a different version. Wenn Sie die Daten langfristig beibehalten möchten, sollten Sie diese Daten in einem Azure Storage-Konto und nicht im Speicheremulator speichern.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.

Für den Speicheremulator sind spezifische Versionen der OData-Bibliotheken erforderlich.The storage emulator depends on specific versions of the OData libraries. Das Ersetzen der OData-DLLs, die vom Speicheremulator mit anderen Versionen verwendet werden, wird nicht unterstützt und führt möglicherweise zu unerwartetem Verhalten.Replacing the OData DLLs used by the storage emulator with other versions is unsupported, and may cause unexpected behavior. Es kann aber jede Version von OData, die vom Speicherdienst unterstützt wird, zum Senden von Anforderungen an den Emulator verwendet werden.However, any version of OData supported by the storage service may be used to send requests to the emulator.

Funktionsweise des SpeicheremulatorsHow the storage emulator works

Der Speicheremulator verwendet zum Emulieren von Azure Storage-Diensten eine lokale Microsoft SQL Server-Instanz und das lokale Dateisystem.The storage emulator uses a local Microsoft SQL Server instance and the local file system to emulate Azure storage services. Der Speicheremulator verwendet standardmäßig eine Datenbank in Microsoft SQL Server 2012 Express LocalDB.By default, the storage emulator uses a database in Microsoft SQL Server 2012 Express LocalDB. Sie können den Speicheremulator für den Zugriff auf eine lokale Instanz von SQL Server statt für den Zugriff auf die LocalDB-Instanz konfigurieren.You can choose to configure the storage emulator to access a local instance of SQL Server instead of the LocalDB instance. Weitere Informationen finden Sie im Abschnitt Starten und Initialisieren des Speicheremulators weiter unten in diesem Artikel.For more information, see the Start and initialize the storage emulator section later in this article.

Der Speicheremulator stellt über die Windows-Authentifizierung eine Verbindung mit SQL Server oder LocalDB her.The storage emulator connects to SQL Server or LocalDB using Windows authentication.

Es bestehen einige Unterschiede in der Funktionsweise zwischen dem Speicheremulator und den Azure Storage-Diensten.Some differences in functionality exist between the storage emulator and Azure storage services. Weitere Informationen zu diesen Unterschieden finden Sie im Abschnitt Unterschiede zwischen dem Speicheremulator und Azure Storage weiter unten in diesem Artikel.For more information about these differences, see the Differences between the storage emulator and Azure Storage section later in this article.

Starten und Initialisieren des SpeicheremulatorsStart and initialize the storage emulator

So starten Sie den Azure-SpeicheremulatorTo start the Azure storage emulator:

  1. Wählen Sie die Schaltfläche Start aus, oder drücken Sie die Windows-Taste.Select the Start button or press the Windows key.
  2. Geben Sie Azure Storage Emulator ein.Begin typing Azure Storage Emulator.
  3. Wählen Sie den Emulator in der Liste der angezeigten Anwendungen aus.Select the emulator from the list of displayed applications.

Beim Start des Speicheremulators wird ein Eingabeaufforderungsfenster angezeigt.When the storage emulator starts, a Command Prompt window will appear. In diesem Konsolenfenster können Sie den Speicheremulator starten und beenden, Daten löschen, den Status abfragen und den Emulator initialisieren.You can use this console window to start and stop the storage emulator, clear data, get status, and initialize the emulator. Weitere Informationen finden Sie im Abschnitt Referenz zum Speicheremulator-Befehlszeilentool weiter unten in diesem Artikel.For more information, see the Storage emulator command-line tool reference section later in this article.

Wenn der Emulator ausgeführt wird, wird im Infobereich der Windows-Taskleiste ein Symbol angezeigt.When the emulator is running, you'll see an icon in the Windows taskbar notification area.

Wenn Sie das Eingabeaufforderungsfenster des Speicheremulators schließen, wird der Speicheremulator weiterhin ausgeführt.When you close the storage emulator Command Prompt window, the storage emulator will continue to run. Wiederholen Sie die Schritte oben zum Starten des Speicheremulators, um das Konsolenfenster des Speicheremulators wieder anzuzeigen.To bring up the Storage Emulator console window again, follow the preceding steps as if starting the storage emulator.

Wenn Sie den Speicheremulator zum ersten Mal ausführen, wird die lokale Speicherumgebung für Sie initialisiert.The first time you run the storage emulator, the local storage environment is initialized for you. Durch die Initialisierung wird in LocalDB eine Datenbank erstellt, und es werden für jeden lokalen Speicherdienst HTTP-Ports reserviert.The initialization process creates a database in LocalDB and reserves HTTP ports for each local storage service.

Der Speicheremulator wird standardmäßig unter C:\Program Files (x86)\Microsoft SDKs\Azure\Storage Emulator installiert.The storage emulator is installed by default to C:\Program Files (x86)\Microsoft SDKs\Azure\Storage Emulator.

Tipp

Im Microsoft Azure Storage-Explorer können Sie mit lokalen Speicheremulatorressourcen arbeiten.You can use the Microsoft Azure Storage Explorer to work with local storage emulator resources. Suchen Sie dazu nach dem Installieren und Starten des Speicheremulators in der Struktur der Storage-Explorer-Ressourcen unter „Speicherkonten“ nach „(Entwicklung)“.Look for "(Development)" under "Storage Accounts" in the Storage Explorer resources tree after you've installed and started the storage emulator.

Initialisieren des Speicheremulators zur Verwendung einer anderen SQL-DatenbankInitialize the storage emulator to use a different SQL database

Sie können das Speicheremulator-Befehlszeilentool zum Initialisieren des Speicheremulators verwenden, damit dieser auf eine andere SQL-Datenbankinstanz als die Standardinstanz von LocalDB verweist: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. Öffnen Sie das Konsolenfenster des Speicheremulators gemäß der Beschreibung im Abschnitt Starten und Initialisieren des Speicheremulators.Open the Storage Emulator console window as described in the Start and initialize the storage emulator section.

  2. Geben Sie im Konsolenfenster den folgenden Befehl ein, wobei <SQLServerInstance> der Name der SQL Server-Instanz ist.In the console window, type the following command, where <SQLServerInstance> is the name of the SQL Server instance. Geben Sie (localdb)\MSSQLLocalDb als SQL Server-Instanz ein, um LocalDB zu verwenden.To use LocalDB, specify (localdb)\MSSQLLocalDb as the SQL Server instance.

    AzureStorageEmulator.exe init /server <SQLServerInstance>

    Mit dem folgenden Befehl können Sie den Emulator anweisen, die SQL Server-Standardinstanz zu verwenden:You can also use the following command, which directs the emulator to use the default SQL Server instance:

    AzureStorageEmulator.exe init /server .

    Sie können auch den folgenden Befehl verwenden, mit dem die Datenbank als Standardinstanz von LocalDB erneut initialisiert wird:Or, you can use the following command, which reinitializes the database to the default LocalDB instance:

    AzureStorageEmulator.exe init /forceCreate

Weitere Informationen zu diesen Befehlen finden Sie unter Referenz zum Speicheremulator-Befehlszeilentool.For more information about these commands, see Storage emulator command-line tool reference.

Tipp

Mit Microsoft SQL Server Management Studio (SSMS) können Sie Ihre SQL Server-Instanzen, einschließlich der LocalDB-Installation, verwalten.You can use the Microsoft SQL Server Management Studio (SSMS) to manage your SQL Server instances, including the LocalDB installation. Geben Sie im SMSS-Dialogfeld Verbindung mit Server herstellen im Feld Servername: den Namen (localdb)\MSSQLLocalDb an, um eine Verbindung mit der LocalDB-Instanz herzustellen.In the SMSS Connect to Server dialog, specify (localdb)\MSSQLLocalDb in the Server name: field to connect to the LocalDB instance.

Authentifizieren von Anforderungen an den SpeicheremulatorAuthenticating requests against the storage emulator

Nachdem Sie den Speicheremulator installiert und gestartet haben, können Sie den Code testen.Once you've installed and started the storage emulator, you can test your code against it. Wie bei Azure Storage in der Cloud muss jede Anforderung, die Sie mit dem Speicheremulator vornehmen, autorisiert werden, sofern es sich nicht um eine anonyme Anforderung handelt.As with Azure Storage in the cloud, every request you make against the storage emulator must be authorized, unless it is an anonymous request. Sie können Anforderungen an den Speicheremulator mit einem gemeinsam verwendeten Schlüssel oder mit einer Shared Access Signature (SAS) autorisieren.You can authorize requests against the storage emulator using Shared Key authentication or with a shared access signature (SAS).

Autorisieren mit Benutzeranmeldeinformationen eines gemeinsam verwendeten SchlüsselsAuthorize with Shared Key credentials

Der Speicheremulator unterstützt nur ein einziges festgelegtes Konto und einen bekannten Authentifizierungsschlüssel für die Authentifizierung mit einem gemeinsam verwendeten Schlüssel.The storage emulator supports a single fixed account and a well-known authentication key for Shared Key authentication. Dieses Konto und dieser Schlüssel sind die einzigen gemeinsam verwendeten Anmeldeinformationen, die für den Speicheremulator verwendet werden dürfen.This account and key are the only Shared Key credentials permitted for use with the storage emulator. Sie lauten wie folgt:They are:

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

Hinweis

Der vom Speicheremulator unterstützte Authentifizierungsschlüssel ist lediglich für das Testen der Funktionalität des Clientauthentifizierungscodes vorgesehen.The authentication key supported by the storage emulator is intended only for testing the functionality of your client authentication code. Er erfüllt keinerlei Sicherheitszwecke.It does not serve any security purpose. Sie können das in der Produktion verwendete Speicherkonto und den zugehörigen Schlüssel nicht mit dem Speicheremulator verwenden.You cannot use your production storage account and key with the storage emulator. Es ist nicht ratsam, das Entwicklungskonto mit Produktionsdaten zu verwenden.You should not use the development account with production data.

Der Speicheremulator unterstützt nur Verbindungen über HTTP.The storage emulator supports connection via HTTP only. Das empfohlene Protokoll für den Zugriff auf Ressourcen in einem in der Produktionsumgebung verwendeten Azure-Speicherkonto ist aber HTTPS.However, HTTPS is the recommended protocol for accessing resources in a production Azure storage account.

Herstellen einer Verbindung mit dem Emulatorkonto über eine VerknüpfungConnect to the emulator account using a shortcut

Am einfachsten können Sie über Ihre Anwendung eine Verbindung mit dem Speicheremulator herstellen, indem Sie eine Verbindungszeichenfolge in der Konfigurationsdatei Ihrer Anwendung konfigurieren, die auf die Verknüpfung UseDevelopmentStorage=true verweist.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. Eine Verbindungszeichenfolge, die auf den Speicheremulator in einer app.config-Datei verweist, kann beispielsweise wie folgt aussehen: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>

Herstellen einer Verbindung mit dem Emulatorkonto mithilfe des bekannten Kontonamens und SchlüsselsConnect to the emulator account using the well-known account name and key

Um eine Verbindungszeichenfolge zu erstellen, die auf den Emulator-Kontonamen und -schlüssel verweist, müssen Sie die Endpunkte für jeden Dienst, den Sie über den Emulator verwenden möchten, in der Verbindungszeichenfolge angeben.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. Dies ist erforderlich, damit die Verbindungszeichenfolge auf die Emulator-Endpunkte verweist. Diese unterscheiden sich von den Endpunkten eines Produktions-Speicherkontos.This is necessary so that the connection string will reference the emulator endpoints, which are different than those for a production storage account. Beispielsweise wird der Wert der Verbindungszeichenfolge wie folgt aussehen: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;

Dieser Wert stimmt mit der oben dargestellten Verknüpfung UseDevelopmentStorage=true überein.This value is identical to the shortcut shown above, UseDevelopmentStorage=true.

Angeben eines HTTP-ProxysSpecify an HTTP proxy

Sie können auch einen HTTP-Proxy angeben, der beim Testen des Dienstes anhand des Speicheremulators verwendet werden soll.You can also specify an HTTP proxy to use when you're testing your service against the storage emulator. Dies kann zum Beobachten von HTTP-Anforderungen und -Antworten nützlich sein, während Sie Vorgänge anhand der Speicherdienste debuggen.This can be useful for observing HTTP requests and responses while you're debugging operations against the storage services. Fügen Sie der Verbindungszeichenfolge die Option DevelopmentStorageProxyUri hinzu, um einen Proxy anzugeben, und legen Sie ihren Wert auf den Proxy-URI fest.To specify a proxy, add the DevelopmentStorageProxyUri option to the connection string, and set its value to the proxy URI. Hier sehen Sie beispielsweise eine Verbindungszeichenfolge, die auf den Speicheremulator verweist und einen HTTP-Proxy konfiguriert:For example, here is a connection string that points to the storage emulator and configures an HTTP proxy:

UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://myProxyUri

Weitere Informationen zu Verbindungszeichenfolgen finden Sie unter Konfigurieren von Azure Storage-Verbindungszeichenfolgen.For more information on connection strings, see Configure Azure Storage connection strings.

Autorisieren mit einer SAS (Shared Access Signature)Authorize with a shared access signature

Hinweis

Dieser Artikel wurde aktualisiert und beinhaltet jetzt das neue Az-Modul von Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Sie können das AzureRM-Modul weiterhin verwenden, das bis mindestens Dezember 2020 weiterhin Fehlerbehebungen erhält.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Weitere Informationen zum neuen Az-Modul und zur Kompatibilität mit AzureRM finden Sie unter Introducing the new Azure PowerShell Az module (Einführung in das neue Az-Modul von Azure PowerShell).To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Anweisungen zur Installation des Az-Moduls finden Sie unter Install Azure PowerShell (Installieren von Azure PowerShell).For Az module installation instructions, see Install Azure PowerShell.

Einige Azure Storage-Clientbibliotheken, wie z. B. die Xamarin-Bibliothek, unterstützen nur Authentifizierung mit einem SAS (Shared Access Signature)-Token.Some Azure storage client libraries, such as the Xamarin library, only support authentication with a shared access signature (SAS) token. Sie können das SAS-Token mit einem Tool wie dem Storage-Explorer oder einer anderen Anwendung erstellen, die die Authentifizierung mit einem gemeinsam verwendeten Schlüssel unterstützt.You can create the SAS token using a tool like the Storage Explorer or another application that supports Shared Key authentication.

Sie können ein SAS-Token auch mithilfe von Azure PowerShell generieren.You can also generate a SAS token by using Azure PowerShell. Im folgenden Beispiel wird ein SAS-Token mit vollen Berechtigungen für einen Blobcontainer generiert:The following example generates a SAS token with full permissions to a blob container:

  1. Installieren Sie Azure PowerShell, sofern noch nicht geschehen (die Verwendung der neuesten Version der Azure PowerShell-Cmdlets wird empfohlen).Install Azure PowerShell if you haven't already (using the latest version of the Azure PowerShell cmdlets is recommended). Installationsanweisungen finden Sie unter Installieren und Konfigurieren von Azure PowerShell.For installation instructions, see Install and configure Azure PowerShell.
  2. Öffnen Sie Azure PowerShell, und führen Sie die folgenden Befehle aus. Ersetzen Sie hierbei CONTAINER_NAME durch einen Namen Ihrer Wahl: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

Der resultierende SAS-URI für den neuen Container sollte etwa wie folgt lauten: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

Die mit diesem Beispiel erstellte SAS gilt für einen Tag.The shared access signature created with this example is valid for one day. Die Signatur gewährt uneingeschränkten Zugriff (Lesen, Schreiben, Löschen und Auflisten) auf die Blobs im Container.The signature grants full access (read, write, delete, list) to blobs within the container.

Weitere Informationen zu Shared Access Signatures finden Sie unter Verwenden von Shared Access Signatures (SAS).For more information on shared access signatures, see Using shared access signatures (SAS) in Azure Storage.

Adressieren von Ressourcen im SpeicheremulatorAddressing resources in the storage emulator

Die Dienstendpunkte für den Speicheremulator unterscheiden sich von denen eines Azure-Speicherkontos.The service endpoints for the storage emulator are different from those of an Azure storage account. Der Unterschied ist: Da der lokale Computer keine Domänennamenauflösung durchführt, müssen die Speicheremulator-Endpunkte lokale Adressen sein.The difference is because the local computer does not perform domain name resolution, requiring the storage emulator endpoints to be local addresses.

Verwenden Sie das folgende Schema, wenn Sie eine Ressource in einem Azure Storage-Konto adressieren.When you address a resource in an Azure storage account, you use the following scheme. Hierbei ist der Kontoname Teil des URI-Hostnamens, und die adressierte Ressource ist Teil des URI-Pfads: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>

Der folgende URI ist z. B. eine gültige Adresse für ein Blob in einem Azure-Speicherkonto: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

Im Speicheremulator ist der Kontoname jedoch Teil des URI-Pfads und nicht des Hostnamens, da der lokale Computer Domänennamen nicht auflöst.However, the storage emulator, because the local computer does not perform domain name resolution, the account name is part of the URI path instead of the host name. Verwenden Sie das folgende URI-Format für eine Ressource im Speicheremulator:Use the following URI format for a resource in the storage emulator:

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

Beispielsweise kann für den Zugriff auf ein Blob im Speicheremulator die folgende Adresse verwendet werden: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

Die Dienstendpunkte für den Speicheremulator sind:The service endpoints for the storage emulator are:

  • Blob-Dienst: http://127.0.0.1:10000/<account-name>/<resource-path>Blob service: http://127.0.0.1:10000/<account-name>/<resource-path>
  • Warteschlangendienst: http://127.0.0.1:10001/<account-name>/<resource-path>Queue service: http://127.0.0.1:10001/<account-name>/<resource-path>
  • Tabellenspeicherdienst: http://127.0.0.1:10002/<account-name>/<resource-path>Table service: http://127.0.0.1:10002/<account-name>/<resource-path>

Adressieren des sekundären Kontos mit RA-GRSAddressing the account secondary with RA-GRS

Ab Version 3.1 unterstützt der Speicheremulator georedundante Replikation mit Lesezugriff (Read-Access Geo-Redundant Replication, RA-GRS).Beginning with version 3.1, the storage emulator supports read-access geo-redundant replication (RA-GRS). Für Speicherressourcen in der Cloud und im lokalen Emulator können Sie auf den sekundären Speicherort zugreifen, indem Sie "-secondary" an den Kontonamen anfügen.For storage resources both in the cloud and in the local emulator, you can access the secondary location by appending -secondary to the account name. Beispielsweise kann die folgende Adresse für den Zugriff auf ein Blob mithilfe des sekundären Speicherorts mit Lesezugriff verwendet werden: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

Hinweis

Für programmgesteuerten Zugriff auf den sekundären Speicherort mit dem Speicheremulator verwenden Sie die Speicherclientbibliothek für .NET, Version 3.2 oder höher.For programmatic access to the secondary with the storage emulator, use the Storage Client Library for .NET version 3.2 or later. Weitere Informationen finden Sie in der Microsoft Azure-Speicherclientbibliothek für .NET .See the Microsoft Azure Storage Client Library for .NET for details.

Referenz zum Speicheremulator-BefehlszeilentoolStorage emulator command-line tool reference

Ab Version 3.0 wird beim Starten des Speicheremulators ein Konsolenfenster angezeigt.Starting in version 3.0, a console window is displayed when you start the Storage Emulator. In der Befehlszeile des Konsolenfensters können Sie den Emulator starten und beenden, den Status abfragen und weitere Vorgänge ausführen.Use the command line in the console window to start and stop the emulator as well as query for status and perform other operations.

Hinweis

Falls Sie den Microsoft Azure-Serveremulator installiert haben, wird beim Start des Speicheremulators ein Taskleistensymbol angezeigt.If you have the Microsoft Azure compute emulator installed, a system tray icon appears when you launch the Storage Emulator. Klicken Sie mit der rechten Maustaste auf das Symbol, um ein Menü zu öffnen, das eine grafische Möglichkeit bietet, den Speicheremulator zu starten und zu beenden.Right-click on the icon to reveal a menu that provides a graphical way to start and stop the Storage Emulator.

BefehlszeilensyntaxCommand line syntax

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

OptionenOptions

Geben Sie zum Anzeigen der Liste der Optionen an der Eingabeaufforderung /help ein.To view the list of options, type /help at the command prompt.

OptionOption BESCHREIBUNGDescription Get-HelpCommand ArgumenteArguments
StartenStart Startet den Speicheremulator.Starts up the storage emulator. AzureStorageEmulator.exe start [-inprocess] -inprocess: Startet den Emulator im aktuellen Prozess, anstatt einen neuen Prozess zu erstellen.-inprocess: Start the emulator in the current process instead of creating a new process.
BeendenStop Beendet den Speicheremulator.Stops the storage emulator. AzureStorageEmulator.exe stop
StatusStatus Zeigt den Status des Speicheremulators an.Prints the status of the storage emulator. AzureStorageEmulator.exe status
ClearClear Löscht die Daten in allen Diensten, die an der Befehlszeile angegeben werden.Clears the data in all services specified on the command line. AzureStorageEmulator.exe clear [blob] [table] [queue] [all] blob: Löscht Blobdaten.blob: Clears blob data.
queue: Löscht Warteschlangendaten.queue: Clears queue data.
table: Löscht Tabellendaten.table: Clears table data.
all: Löscht sämtliche Daten in allen Diensten.all: Clears all data in all services.
InitInit Führt eine einmalige Initialisierung zur Einrichtung des Emulators durch.Performs one-time initialization to set up the emulator. AzureStorageEmulator.exe init [-server serverName] [-sqlinstance instanceName] [-forcecreate|-skipcreate] [-reserveports|-unreserveports] [-inprocess] -server serverName\instanceName: Gibt den Server an, der die SQL-Instanz hostet.-server serverName\instanceName: Specifies the server hosting the SQL instance.
-sqlinstance instanceName: Gibt den Namen der zu verwendenden SQL-Instanz in der Standardserverinstanz an.-sqlinstance instanceName: Specifies the name of the SQL instance to be used in the default server instance.
-forcecreate: Erzwingt die Erstellung der SQL-Datenbank, auch wenn diese bereits vorhanden ist.-forcecreate: Forces creation of the SQL database, even if it already exists.
-skipcreate: Überspringt das Erstellen der SQL-Datenbank.-skipcreate: Skips creation of the SQL database. Dies hat Vorrang vor „-forcecreate“.This takes precedence over -forcecreate.
-reserveports: Versucht, die den Diensten zugeordneten HTTP-Ports zu reservieren.-reserveports: Attempts to reserve the HTTP ports associated with the services.
-unreserveports: Versucht, Reservierungen für die den Diensten zugeordneten HTTP-Ports zu entfernen.-unreserveports: Attempts to remove reservations for the HTTP ports associated with the services. Dies hat Vorrang vor „-reserveports“.This takes precedence over -reserveports.
-inprocess: Führt die Initialisierung im aktuellen Prozess aus, anstatt einen neuen Prozess zu erstellen.-inprocess: Performs initialization in the current process instead of spawning a new process. Der aktuelle Prozess muss mit erhöhten Rechten gestartet werden, wenn Portreservierungen geändert werden.The current process must be launched with elevated permissions if changing port reservations.

Unterschiede zwischen dem Speicheremulator und Azure StorageDifferences between the storage emulator and Azure Storage

Da der Speicheremulator eine emulierte Umgebung darstellt, die in einer lokalen SQL-Instanz ausgeführt wird, gibt es funktionelle Unterschiede zwischen dem Emulator und einem Azure-Speicherkonto in der Cloud:Because the storage emulator is an emulated environment running in a local SQL instance, there are differences in functionality between the emulator and an Azure storage account in the cloud:

  • Der Speicheremulator unterstützt nur ein einziges festgelegtes Konto und einen bekannten Authentifizierungsschlüssel.The storage emulator supports only a single fixed account and a well-known authentication key.
  • Der Speicheremulator ist kein skalierbarer Speicherdienst und unterstützt keine große Anzahl von gleichzeitigen Clients.The storage emulator is not a scalable storage service and does not support a large number of concurrent clients.
  • Wie in Adressieren von Ressourcen im Speicheremulatorbeschrieben, werden Ressourcen im Speicheremulator im Vergleich zu einem Azure-Speicherkonto anders adressiert.As described in Addressing resources in the storage emulator, resources are addressed differently in the storage emulator versus an Azure storage account. Dieser Unterschied ist darauf zurückzuführen, dass die Domänennamensauflösung zwar in der Cloud, nicht aber auf dem lokalen Computer verfügbar ist.This difference is because domain name resolution is available in the cloud but not on the local computer.
  • Ab Version 3.1 unterstützt das Speicheremulatorkonto georedundante Replikation mit Lesezugriff (Read-Access Geo-Redundant Replication, RA-GRS).Beginning with version 3.1, the storage emulator account supports read-access geo-redundant replication (RA-GRS). Im Emulator ist für alle Konten RA-GRS aktiviert, und es entsteht niemals eine Verzögerung zwischen den primären und sekundären Replikaten.In the emulator, all accounts have RA-GRS enabled, and there is never any lag between the primary and secondary replicas. Die Vorgänge "Get Blob Service Stats", "Get Queue Service Stats" und "Get Table Service Stats" werden für das sekundäre Konto unterstützt. Sie geben immer den Wert des LastSyncTime-Antwortelements als aktuelle Uhrzeit der zugrunde liegenden SQL-Datenbank zurück.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.
  • Die Endpunkte für Dateidienst und SMB-Protokolldienst werden im Speicheremulator zurzeit nicht unterstützt.The File service and SMB protocol service endpoints are not currently supported in the storage emulator.
  • Wenn Sie eine Version der Speicherdienste verwenden, die vom Emulator noch nicht unterstützt wird, gibt der Speicheremulator den Fehler „VersionNotSupportedByEmulator“ (HTTP-Statuscode 400 – Ungültige Anforderung) zurück.If you use a version of the storage services that is not yet supported by the emulator, the storage emulator returns a VersionNotSupportedByEmulator error (HTTP status code 400 - Bad Request).

Unterschiede beim Blob-SpeicherDifferences for Blob storage

Die folgenden Unterschiede gelten für Blob-Speicher im Emulator:The following differences apply to Blob storage in the emulator:

  • Der Speicheremulator unterstützt nur Blob-Größen bis 2 GB.The storage emulator only supports blob sizes up to 2 GB.
  • Die maximale Länge eines Blobnamens im Speicheremulator ist 256 Zeichen, während sie im Azure-Speicher 1024 Zeichen beträgt.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.
  • Bei inkrementellen Kopien können Momentaufnahmen von überschriebenen Blobs kopiert werden, wodurch ein Fehler für den Dienst zurückgegeben wird.Incremental copy allows snapshots from overwritten blobs to be copied, which returns a failure on the service.
  • „Get Page Ranges Diff“ funktioniert nicht zwischen Momentaufnahmen, die per inkrementeller Blobkopie kopiert wurden.Get Page Ranges Diff does not work between snapshots copied using Incremental Copy Blob.
  • Ein Ablegevorgang für ein Blob kann bei einem Blob, das im Speicheremulator vorhanden ist und über eine aktive Lease verfügt, erfolgreich durchgeführt werden. Dies gilt auch, wenn die Lease-ID in der Anforderung nicht angegeben wurde.A Put Blob operation may succeed against a blob that exists in the storage emulator with an active lease, even if the lease ID has not been specified in the request.
  • Vorgänge für Anfügeblobs werden vom Emulator nicht unterstützt.Append Blob operations are not supported by the emulator. Beim Versuch, einen Vorgang auf einen Anfügeblob anzuwenden, wird der Fehler „FeatureNotSupportedByEmulator“ (HTTP-Statuscode 400 – Ungültige Anforderung) zurückgegeben.Attempting an operation on an append blob returns a FeatureNotSupportedByEmulator error (HTTP status code 400 - Bad Request).

Unterschiede beim TabellenspeicherDifferences for Table storage

Die folgenden Unterschiede gelten für Tabellenspeicher im Emulator:The following differences apply to Table storage in the emulator:

  • Datumseigenschaften im Tabellenspeicherdienst im Speicheremulator unterstützen nur den von SQL Server 2005 unterstützten Bereich (sie müssen nach dem 1. Januar 1753 liegen).Date properties in the Table service in the storage emulator support only the range supported by SQL Server 2005 (they are required to be later than January 1, 1753). Alle Datumsangaben vor dem 1. Januar 1753 werden in diesen Wert geändert.All dates before January 1, 1753 are changed to this value. Die Genauigkeit der Daten ist begrenzt auf die Genauigkeit von SQL Server 2005, d. h., Datumsangaben sind auf 1/300 Sekunde genau.The precision of dates is limited to the precision of SQL Server 2005, meaning that dates are precise to 1/300th of a second.
  • Der Speicheremulator unterstützt Eigenschaftenwerte für Partitions- und Zeilenschlüssel von jeweils weniger als 512 Byte.The storage emulator supports partition key and row key property values of less than 512 bytes each. Darüber hinaus darf die Gesamtgröße von Kontoname, Tabellenname und Schlüsseleigenschaftennamen 900 Byte nicht überschreiten.Additionally, the total size of the account name, table name, and key property names together cannot exceed 900 bytes.
  • Die Gesamtgröße einer Zeile in einer Tabelle im Speicheremulator ist auf weniger als 1 MB beschränkt.The total size of a row in a table in the storage emulator is limited to less than 1 MB.
  • Im Speicheremulator unterstützen Eigenschaften des Datentyps Edm.Guid oder Edm.Binary in Filterzeichenfolgen für Abfragen nur die Vergleichsoperatoren Equal (eq) und NotEqual (ne).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.

Unterschiede beim WarteschlangenspeicherDifferences for Queue storage

Es bestehen keine Unterschiede beim Warteschlangenspeicher im Emulator.There are no differences specific to Queue storage in the emulator.

Speicheremulator – VersionshinweiseStorage emulator release notes

Version 5.7Version 5.7

Korrektur eines Fehlers, der zu einem Absturz führen würde, wenn die Protokollierung aktiviert ist.Fixed a bug that would cause a crash if logging was enabled.

Version 5.6Version 5.6

  • Der Speicheremulator unterstützt nun die Version vom 28.03.2018 der Speicherdienste für Blob-, Warteschlangen- und Tabellenspeicherdienst-Endpunkte.The storage emulator now supports version 2018-03-28 of the storage services on Blob, Queue, and Table service endpoints.

Version 5.5Version 5.5

  • Der Speicheremulator unterstützt nun Version 2017-11-09 der Speicherdienste auf Blob-, Warteschlangen- und Tabellenspeicherdienst-Endpunkten.The storage emulator now supports version 2017-11-09 of the storage services on Blob, Queue, and Table service endpoints.
  • Unterstützung für die Blobeigenschaft Created, die die Bloberstellungszeit zurückgibt, wurde hinzugefügt.Support has been added for the blob Created property, which returns the blob's creation time.

Version 5.4Version 5.4

Zur Verbesserung der Stabilität der Installation versucht der Emulator nicht mehr, Ports während der Installationszeit zu reservieren.To improve installation stability, the emulator no longer attempts to reserve ports at install time. Wenn Portreservierungen gewünscht sind, verwenden Sie die -reserveports-Option des init-Befehls, um sie anzugeben.If port reservations are desired, use the -reserveports option of the init command to specify them.

Version 5.3Version 5.3

Der Speicheremulator unterstützt nun Version 2017-07-29 der Speicherdienste auf Blob-, Warteschlangen- und Tabellenspeicherdienst-Endpunkten.The storage emulator now supports version 2017-07-29 of the storage services on Blob, Queue, and Table service endpoints.

Version 5.2Version 5.2

  • Der Speicheremulator unterstützt nun Version 2017-04-17 der Speicherdienste auf Blob-, Warteschlangen- und Tabellenspeicherdienst-Endpunkten.The storage emulator now supports version 2017-04-17 of the storage services on Blob, Queue, and Table service endpoints.
  • Korrektur eines Fehlers, aufgrund dessen Tabelleneigenschaftswerte nicht ordnungsgemäß codiert wurden.Fixed a bug where table property values were not being properly encoded.

Version 5.1Version 5.1

Es wurde ein Fehler behoben, bei dem der Speicheremulator in einigen Antworten den Header DataServiceVersion zurückgegeben hat, während der Dienst dies nicht getan hat.Fixed a bug where the storage emulator was returning the DataServiceVersion header in some responses where the service was not.

Version 5.0Version 5.0

  • Der Speicheremulator-Installer führt keine Überprüfungen auf vorhandene MSSQL- und .NET Framework-Installationen mehr durch.The storage emulator installer no longer checks for existing MSSQL and .NET Framework installs.
  • Der Speicheremulator-Installer erstellt die Datenbank nicht mehr als Teil der Installation.The storage emulator installer no longer creates the database as part of install. Die Datenbank wird bei Bedarf immer noch als Teil des Starts erstellt.Database will still be created if needed as part of startup.
  • Die Datenbankerstellung erfordert keine Rechteerweiterungen mehr.Database creation no longer requires elevation.
  • Portreservierungen werden für den Start nicht mehr benötigt.Port reservations are no longer needed for startup.
  • Die folgenden Optionen wurden zu init hinzugefügt: -reserveports (erfordert Rechteerweiterungen), -unreserveports (erfordert Rechteerweiterungen), -skipcreate.Adds the following options to init: -reserveports (requires elevation), -unreserveports (requires elevation), -skipcreate.
  • Über die Speicheremulator-Benutzeroberflächenoption auf dem Taskleistensymbol wird nun die Befehlszeilenschnittstelle gestartet.The Storage Emulator UI option on the system tray icon now launches the command line interface. Die alte GUI ist nicht mehr verfügbar.The old GUI is no longer available.
  • Einige DLLs wurden entfernt oder umbenannt.Some DLLs have been removed or renamed.

Version 4.6Version 4.6

  • Der Speicheremulator unterstützt nun Version 2016-05-31 der Speicherdienste auf Blob-, Warteschlangen- und Tabellenspeicherdienst-Endpunkten.The storage emulator now supports version 2016-05-31 of the storage services on Blob, Queue, and Table service endpoints.

Version 4.5Version 4.5

  • Korrektur eines Fehlers, das verursacht hat, dass Initialisierung und Installation des Speicheremulators misslingen, wenn die Sicherungsdatenbank umbenannt wurde.Fixed a bug that caused initialization and installation of the storage emulator to fail when the backing database was renamed.

Version 4.4Version 4.4

  • Der Speicheremulator unterstützt nun Version 2015-12-11 der Speicherdienste auf Blob-, Warteschlangen- und Tabellenspeicherdienst-Endpunkten.The storage emulator now supports version 2015-12-11 of the storage services on Blob, Queue, and Table service endpoints.
  • Der Speicheremulator verfügt nun über eine effizientere Garbage Collection für die Verarbeitung zahlreicher Blobs.The storage emulator's garbage collection of blob data is now more efficient when dealing with large numbers of blobs.
  • Ein Fehler wurde behoben, durch den die Validierung des Container-ACL-XML-Codes nicht exakt der Validierung durch den Speicherdienst entsprach.Fixed a bug that caused container ACL XML to be validated slightly differently from how the storage service does it.
  • Ein Fehler, aufgrund dessen die Mindest- und Höchstwerte für „DateTime“ manchmal in der falschen Zeitzone gemeldet wurden, wurde behoben.Fixed a bug that sometimes caused max and min DateTime values to be reported in the incorrect time zone.

Version 4.3Version 4.3

  • Der Speicheremulator unterstützt nun Version 2015-07-08 der Speicherdienste auf Blob-, Warteschlangen- und Tabellenspeicherdienst-Endpunkten.The storage emulator now supports version 2015-07-08 of the storage services on Blob, Queue, and Table service endpoints.

Version 4.2Version 4.2

  • Der Speicheremulator unterstützt nun Version 2015-04-05 der Speicherdienste auf Blob-, Warteschlangen- und Tabellenspeicherdienst-Endpunkten.The storage emulator now supports version 2015-04-05 of the storage services on Blob, Queue, and Table service endpoints.

Version 4.1Version 4.1

  • Der Speicheremulator unterstützt nun Version 2015-02-21 der Speicherdienste auf Blob-, Warteschlangen- und Tabellenspeicherdienst-Endpunkten, mit Ausnahme der neuen Anfügeblob-Funktionen.The storage emulator now supports version 2015-02-21 of the storage services on Blob, Queue, and Table service endpoints, except for the new Append Blob features.
  • Wenn Sie eine Version der Speicherdienste verwenden, die vom Emulator noch nicht unterstützt wird, gibt der Speicheremulator eine sinnvolle Fehlermeldung zurück.If you use a version of the storage services that is not yet supported by the emulator, the emulator returns a meaningful error message. Es wird empfohlen, die neueste Version des Emulators zu verwenden.We recommend using the latest version of the emulator. Wenn Sie den Fehler „VersionNotSupportedByEmulator“ (HTTP-Statuscode 400 – Ungültige Anforderung) erhalten, laden Sie die neueste Version des Speicheremulators herunter.If you encounter a VersionNotSupportedByEmulator error (HTTP status code 400 - Bad Request), please download the latest version of the storage emulator.
  • Es wurde ein Fehler behoben, bei der eine Racebedingung während der gleichzeitigen Zusammenführungsvorgänge zu falschen Tabellenentitätsdaten geführt hat.Fixed a bug wherein a race condition caused table entity data to be incorrect during concurrent merge operations.

Version 4.0Version 4.0

  • Die ausführbare Datei des Speicheremulators wurde in AzureStorageEmulator.exeumbenannt.The storage emulator executable has been renamed to AzureStorageEmulator.exe.

Version 3.2Version 3.2

Version 3.1Version 3.1

  • Lesezugriff auf den geografisch redundanten Speicher (RA-GRS) wird nun im Speicheremulator unterstützt.Read-access geo-redundant storage (RA-GRS) is now supported in the storage emulator. Die API-Vorgänge "Get Blob Service Stats", "Get Queue Service Stats" und "Get Table Service Stats" werden für das sekundäre Konto unterstützt. Sie geben immer den Wert des LastSyncTime-Antwortelements als aktuelle Uhrzeit der zugrunde liegenden SQL-Datenbank zurück.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. Für programmgesteuerten Zugriff auf den sekundären Speicherort mit dem Speicheremulator verwenden Sie die Speicherclientbibliothek für .NET, Version 3.2 oder höher.For programmatic access to the secondary with the storage emulator, use the Storage Client Library for .NET version 3.2 or later. In der Referenz zur Microsoft Azure Storage-Clientbibliothek für .NET finden Sie weitere Einzelheiten.See the Microsoft Azure Storage Client Library for .NET Reference for details.

Version 3.0Version 3.0

  • Der Azure-Speicheremulator wird nicht mehr im gleichen Paket wie der Serveremulator ausgeliefert.The Azure storage emulator is no longer shipped in the same package as the compute emulator.
  • Die grafische Benutzeroberfläche des Speicheremulators wird durch eine skriptfähige Befehlszeilenschnittstelle ersetzt.The storage emulator graphical user interface is deprecated in favor of a scriptable command-line interface. Ausführliche Informationen zur Befehlszeilenschnittstelle finden Sie in der Referenz zum Speicheremulator-Befehlszeilentool.For details on the command-line interface, see Storage Emulator Command-Line Tool Reference. Die grafische Benutzeroberfläche wird weiterhin in Version 3.0 enthalten sein, es kann aber nur sie zugegriffen werden, wenn der Serveremulator installiert ist, indem Sie mit der rechten Maustaste auf das Taskleistensymbol klicken und die Speicheremulator-Benutzeroberfläche auswählen.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.
  • Version 2013-08-15 der Azure Storage-Dienste wird jetzt vollständig unterstützt.Version 2013-08-15 of the Azure storage services is now fully supported. (Zuvor wurde diese Version nur von Version 2.2.1 Preview des Speicheremulators unterstützt.)(Previously this version was only supported by Storage Emulator version 2.2.1 Preview.)

Nächste SchritteNext steps

  • Evaluieren Sie den plattformübergreifenden von der Community unterstützten Open Source-Speicheremulator Azurite.Evaluate the cross-platform, community-maintained open source storage emulator Azurite.
  • Azure Storage-Beispiele mit .NET enthält Links zu mehreren Codebeispielen, die Sie bei der Anwendungsentwicklung verwenden können.Azure Storage samples using .NET contains links to several code samples you can use when developing your application.
  • Im Microsoft Azure Storage-Explorer können Sie mit Ressourcen in Ihrem Storage-Konto in der Cloud und im Speicheremulator arbeiten.You can use the Microsoft Azure Storage Explorer to work with resources in your cloud Storage account, and in the storage emulator.