在Windows Azure上启动存储模拟器时出错

时间:2012-07-09 20:58:06

标签: c# windows azure emulation storage

启动存储模拟器时,我收到以下错误消息。我错误地删除了mdf文件夹中的users/admin和日志文件。它在某个地方持有参考,不允许我再次创建数据库。请帮帮我。

Added reservation for 127.0.0.1:10000/ in user account RaviBorra-PC\Ravi Borra.
Added reservation for 127.0.0.1:10001/ in user account RaviBorra-PC\Ravi Borra.
Added reservation for 127.0.0.1:10002/ in user account RaviBorra-PC\Ravi Borra.

Found SQL Instance (localdb)\v11.0.
Creating database DevelopmentStorageDb201206 on SQL instance '(localdb)\v11.0'.
Cannot create database 'DevelopmentStorageDb201206' : Database 'DevelopmentStorageDb201206' 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. Please refer to http://go.microsoft.com/fwlink/?LinkID=248088 for more details.

谢谢你, Ravi Krishna B。

9 个答案:

答案 0 :(得分:30)

执行以下步骤:

  1. 打开cmd.exe(命令提示符)
  2. 写下这个:

    SqlLocalDb stop "v11.0"
    SqlLocalDb delete "v11.0" 
    

    并按 Enter

  3. 请注意,“v11.0”为MyInstance

    有关详细信息,请访问this link

答案 1 :(得分:29)

如果删除数据文件C:\Users\<Username>\DevelopmentStorageDb201206.mdf但不删除LocalDB服务器实例上的相应数据库,则可能会出现此问题。一种可能的解决方案是:

  1. SQL Server Management Studio 连接到(localdb)\v11.0实例。
  2. 删除DevelopmentStorageDb201206数据库。将出现错误消息,表明数据库删除以错误结束。忽略此消息并手动刷新数据库列表。
  3. 现在您可以启动Azure存储模拟器。

答案 2 :(得分:13)

这不是与Azure组件相关的问题,而是LocalDB实例向Azure请求报告该DB仍然存在。首先使用“sqllocaldb i”检查计算机中的LocalDB实例,然后使用“sqllocaldb d'instal_name'”删除实例。我无法在我的机器上测试它,但如果localdb实例阻止你,这可能会阻止你。

在Windows Azure SDK 1.7中,Windows Azure存储模拟器在以下位置使用LocalDB实例特定配置:

%LocalAppData%\DevelopmentStorage\DevelopmentStorage.201206.config

基于此,您将看到v11.0实例是特定于Windows Azure存储模拟器的,因此请验证它是否正在运行并删除它将让DSInit在LocalDB中再次创建数据库。

答案 3 :(得分:10)

如果你的本地盒子上安装了Sql Express,那么(localdb)\ v11.0很可能不是你的本地Sql实例。它更可能是{MyComputerName} \ SQLEXPRESS。

转到:

C:\Users\<yourloginname>\AppData\Local\DevelopmentStorage\DevelopmentStorage.201206.config

改变:

 <SQLInstance>(localdb)\v11.0</SQLInstance>

要:

<SQLInstance>{MyComputerName}\SQLEXPRESS</SQLInstance>

为我解决了这个错误。

答案 4 :(得分:2)

我希望这有帮助..

如果您已经尝试过但执行失败:

 SQLLocalDB stop v11.0
 SQLLocalDB delete v11.0
 Delete all the files in C:\Users\<accontname>\WAStorageEmulatorDb* (usually one mdf and one ldf)
 Create a new account (I called it Azure, with administrative rights)
 Run again the installation
 Installation completed!

对我而言,这是有效的...我曾尝试在使用这种方式之前格式化PC。我支持我的问题与我的用户名有关,其中包含“无效”字符,如姓名'NickName'姓氏,而“Azure”帐户似乎对他来说没问题。

我弄清楚'因为在日志中的某处我将属性目标路径设置为“C:\ Users \ Name $ _”,这对于我的用户帐户文件夹的路径来说很远。

之后,您可以继续使用CMD.exe并提示:

 control userpasswords2

从控件中删除Azure登录名而不删除文件夹!

希望它有所帮助!

答案 5 :(得分:1)

我只是删除了以DevelopmentStorage ...或WAStorageEmulator开头的C:\ Users \ accountname \中的所有mdf和ldf。

重新安装并运行。

答案 6 :(得分:0)

这也可能是由于localDB不存在的文件夹引起的。看起来Visual Studio / Azure不会自动创建包含文件夹。我只是将错误代码中的路径复制到资源管理器中,并将目录创建到.MDF文件。

答案 7 :(得分:0)

在visual studio中,转到工具 - &gt;选项 - &gt;数据库工具 - &gt;数据连接并将localdb实例名称从v11.0更改为其他名称。

答案 8 :(得分:0)

我确实安装了SQL Express,如Brian Ogden在回答中所建议的那样,但是我想尝试将Azure Storage Emulator指向我的SQL Express实例,而无需修改配置文件。

我通过运行Storage Emulator的初始化过程并使用可用的开关传递SQL Express的服务器\实例详细信息来完成此操作。下面是我执行的命令的示例(从提升的命令提示符下):

AzureStorageEmulator.exe init -server MY-PC-NAME -instance MYSQLINST

这成功创建了数据库(在我的SQL Express实例中)并使我的存储模拟器正常工作。

我使用的是命名实例,但是我想通过省略-instance开关,可以将这种方法用于默认实例。