unable - Azure Storage Emulator falla después de agregar VS 2015 SDK
getting started with azure storage (1)
He tenido Azure SDK 2.5 y Tools for VS2013 instaladas y funcionan bien por bastante tiempo. Hoy instalé el SDK y las herramientas para VS2015 y ahora mi emulador de almacenamiento de Azure no se iniciará. En el primer intento de iniciarlo, recibí una SqlException:
Unhandled Exception: System.Data.SqlClient.SqlException:
An error occurred while processing the log for database If possible,
restore from backup. If a backup is not available, it might be
necessary to rebuild the log.
Después de reiniciar la máquina, recibo un error menor:
C:/Program Files (x86)/Microsoft SDKs/Azure/Storage Emulator>WAStorageEmulator start Windows Azure Storage Emulator
3.4.0.0 command line tool Error: The storage emulator needs to be initialized. Please run the ''init'' command.
Pero ejecutar init no funciona:
C:/Program Files (x86)/Microsoft SDKs/Azure/Storage Emulator>WAStorageEmulator init Windows Azure Storage Emulator 3.4.0.0 command line tool Error: Cannot create database.
Comenzar con el proceso indica que mi inicio de sesión está fallando. Soy un administrador en la máquina, así que esto es extraño.
C:/Program Files (x86)/Microsoft SDKs/Azure/Storage Emulator>WAStorageEmulator start -inprocess
Windows Azure Storage Emulator 3.4.0.0 command line tool
Cannot open database "WAStorageEmulatorDb34" requested by the login. The login failed.
Login failed for user ''DOMAIN/genslow''.
3/24/2015 10:00:57 AM [Info] Starting Service: Blob
3/24/2015 10:00:57 AM [Verbose_debug] [Nephos.Storage] { Initialize
3/24/2015 10:00:57 AM [Info_debug] Loading config Param NephosAllowPathStyleUris (Allow path-style URIs) read: true
3/24/2015 10:00:57 AM [Info_debug] Successfully loaded NephosAllowPathStyleUris: True
3/24/2015 10:00:57 AM [Info_debug] Loading config Param NephosIncludeInternalDetailsInErrorResponses (Include internal details in error responses) read: false
3/24/2015 10:00:57 AM [Info_debug] Successfully loaded NephosIncludeInternalDetailsInErrorResponses: False
3/24/2015 10:00:57 AM [Info_debug] Loading config Param StampName (Stamp Name) read: StorageEmulator
3/24/2015 10:00:57 AM [Info_debug] BlockBlob: Load Interval failed. IsGC: True, Exception at System.Number.ParseDouble(String value, NumberStyles options, NumberFormatInfo numfmt)
at Microsoft.WindowsAzure.DevelopmentStorage.Store.BlockBlobGarbageCollector.GetTimerIntervalOrDefault(Boolean isGC)
3/24/2015 10:00:57 AM [Info_debug] BlockBlob: Load Interval failed. IsGC: False, Exception at System.Number.ParseDouble(String value, NumberStyles options, NumberFormatInfo numfmt)
at Microsoft.WindowsAzure.DevelopmentStorage.Store.BlockBlobGarbageCollector.GetTimerIntervalOrDefault(Boolean isGC)
3/24/2015 10:00:57 AM [Verbose_debug] [Nephos.Storage] } Initialize
Service Status: Blob http://127.0.0.1:10000/ True
3/24/2015 10:00:57 AM [Info] Starting Service: Queue
3/24/2015 10:00:57 AM [Verbose_debug] [Nephos.Queue] { Initialize
3/24/2015 10:00:57 AM [Info_debug] Loading config Param NephosAllowPathStyleUris (Allow path-style URIs) read: true
3/24/2015 10:00:57 AM [Info_debug] Successfully loaded NephosAllowPathStyleUris: True
3/24/2015 10:00:57 AM [Info_debug] Loading config Param NephosIncludeInternalDetailsInErrorResponses (Include internal details in error responses) read: false
3/24/2015 10:00:57 AM [Info_debug] Successfully loaded NephosIncludeInternalDetailsInErrorResponses: False
3/24/2015 10:00:57 AM [Info_debug] Loading config Param StampName (Stamp Name) read: StorageEmulator
3/24/2015 10:00:57 AM [Verbose_debug] [DevelopmentStorage.Queue] } Initialize
Service Status: Queue http://127.0.0.1:10001/ True
3/24/2015 10:00:57 AM [Info] Starting Service: Table
3/24/2015 10:00:57 AM [Verbose_debug] [Nephos.Table] { Initialize
3/24/2015 10:00:57 AM [Info_debug] Loading config Param NephosAllowPathStyleUris (Allow path-style URIs) read: true
3/24/2015 10:00:57 AM [Info_debug] Successfully loaded NephosAllowPathStyleUris: True
3/24/2015 10:00:57 AM [Info_debug] Loading config Param NephosIncludeInternalDetailsInErrorResponses (Include internal details in error responses) read: false
3/24/2015 10:00:57 AM [Info_debug] Successfully loaded NephosIncludeInternalDetailsInErrorResponses: False
3/24/2015 10:00:57 AM [Info_debug] Loading config Param StampName (Stamp Name) read: StorageEmulator
3/24/2015 10:00:57 AM [Info] NOT using custom threadpool for blocking calls
Service Status: Table http://127.0.0.1:10002/ True
Al ejecutar init con -inprocess se obtiene el siguiente detalle:
C:/Program Files (x86)/Microsoft SDKs/Azure/Storage Emulator>WAStorageEmulator init -inprocess
Windows Azure Storage Emulator 3.4.0.0 command line tool
Added reservation for http://127.0.0.1:10000/ in user account DOMAIN/genslow.
Added reservation for http://127.0.0.1:10001/ in user account DOMAIN/genslow.
Added reservation for http://127.0.0.1:10002/ in user account DOMAIN/genslow.
Found SQL Instance (localdb)/MSSQLLocalDB.
Creating database WAStorageEmulatorDb34 on SQL instance ''(localdb)/MSSQLLocalDB''.
Cannot create database ''WAStorageEmulatorDb34'' : Database ''WAStorageEmulatorDb34'' already exists. Choose a different database name..
One or more initialization actions have failed. Resolve these errors before attempting to run the storage emulator again.
Error: Cannot create database ''WAStorageEmulatorDb34'' : Database ''WAStorageEmulatorDb34'' already exists. Choose a different database name..
Entonces, ¿hay alguna forma de recuperarse de esto o debería desinstalar todo y empezar de nuevo?
Puede usar el siguiente proceso para recuperarse de la mayoría de los problemas de init que involucran la base de datos. Tenga en cuenta que cualquier dato en el emulador se perderá en ese momento.
Eliminar la instancia de SQL:
sqllocaldb stop MSSQLLocalDB
sqllocaldb delete MSSQLLocalDB
Ahora borre los siguientes archivos de base de datos:
%USERPROFILE%/AzureStorageEmulatorDb*.mdf
%USERPROFILE%/AzureStorageEmulatorDb*.ldf
Finalmente, vuelva a crear la instancia sql:
sqllocaldb start MSSQLLocalDB
Luego, vuelva a intentar el emulador init.