Azure 存储模拟器无法初始化

Rob*_*nik 3 azure azure-storage azure-storage-emulator

我已将 Azure 存储模拟器从 2.3 升级到 2.4。WAStorageEmulator.exe已重命名为AzureStorageEmulator.exe,但这不是问题。

当我跑

AzureStorageEmulator init -forcecreate
Run Code Online (Sandbox Code Playgroud)

我只是收到一个错误,Google 返回的结果为零

错误:未找到用户指定的实例。请更正此问题并重新运行初始化。

编辑

我必须开始和停止,然后才能进行初始化。因为我安装了以前版本的模拟器,所以我的本地 SQL 服务器实例上已经有了WAStorageEmulatorDb34。运行init命令后,我可以看到没有创建新数据库(如WAStorageEmulatorDb42)。

所以我认为最新版本可能使用的是旧数据库。然后我在 MSSMS 中运行一个查询来检查现有的 blob 容器,我仍然可以看到我在旧模拟器上创建的两个容器,其中包含我添加的 blob。

当我在 Visual Studio 中访问 Development Azure Storage 时,它​​没有显示任何容器。所以新版本显然不使用旧数据库。但哪一个?而且它在哪里

好的,所以我想我会再运行一次 init 但使用额外的参数将 DB 放在我的 SQL 服务器实例上:

AzureStorageEmulator init -server localhost -sqlinstance MSSQLSERVER -forcecreate
Run Code Online (Sandbox Code Playgroud)

然后我得到了上述错误。再次...

我以具有提升权限的管理员身份运行 CMD。

Rob*_*nik 11

最终奏效的解决方案

附加信息

Azure 存储模拟器通常在 LocalDB 存储中创建表。根据模拟器版本,这些可能位于不同的数据库实例中。您可以检查每个存储模拟器版本的配置

%USERPROFILE%\AppData\Local\[AzureStorageEmulatorFolder]\*.config
Run Code Online (Sandbox Code Playgroud)

不同的版本有不同的文件夹名称,从DevelopmentStorageWAStorageEmulator到最新的 (4.2) AzureStorageEmulator

在此子文件夹中,您将找到至少一个与您安装的 Azure 存储模拟器版本相对应的配置文件。如果您打开它,您将看到它的配置方式以及它保存表格的位置。如果您在任何现有的完整 SQL 服务器实例上创建初始化,也是如此。

当我尝试初始化我的 Azure 存储模拟器 (ASE) 时的问题是我还提供了 SQL 服务器的实例,这是默认的实例 (MSSQLSERVER)。我不应该首先提供这些信息,而应该只提供有关服务器的信息

所以正确的命令行调用是

AzureStorageEmulator init -server localhost -forcecreate
Run Code Online (Sandbox Code Playgroud)

这在我的本地 SQL 服务器上创建了我的数据库。从这里开始,您将决定如何从现有的 ASE 数据库(如果您之前已经拥有)迁移到新的数据库。

  • 这对我有用。我已经从我的机器上删除了一些旧版本的 SQL Server,并且模拟器似乎依赖其中之一。在我看到您的建议之前,我无法弄清楚如何初始化它 - 我猜 forcecreate 标志是关键。谢谢 (2认同)