【发布时间】:2017-05-09 16:07:36
【问题描述】:
我无法启动 Azure 存储模拟器。我正在运行 v4.6。
我的开发机器上有两个帐户,管理员帐户(我不使用)和我的命名帐户 gregv。我在 gregv 帐户下完成所有开发工作。
这意味着管理员帐户无权访问 SqlLocalDB。我通过登录管理员帐户并启动 SMSS 并尝试附加到 (localdb)\v11.0 对此进行了测试。我以 gregv 身份登录时可以连接,但以管理员身份登录时无法连接。
我认为 Azure 存储模拟器正在尝试将自己设置为好像管理员帐户是运行的帐户一样。我认为这是因为它在 c:\Users\Administrator 下而不是在 c:\Users\gregv 下创建 mdf 数据库文件,即使我在以 gregv 身份登录时安装它也是如此。
当我尝试运行模拟器时,它会挂起一段时间,然后最终给我这个错误:
C:\Program Files (x86)\Microsoft SDKs\Azure\Storage Emulator>AzureStorageEmulator.exe start
Windows Azure Storage Emulator 4.6.0.0 command line tool
Unhandled Exception: System.TimeoutException: Unable to open wait handle.
at Microsoft.WindowsAzure.Storage.Emulator.Controller.EmulatorProcessController.InternalWaitForStorageEmulator(Int32 timeoutInMilliseconds)
at Microsoft.WindowsAzure.Storage.Emulator.Controller.EmulatorProcessController.EnsureRunning(Int32 timeoutInMilliseconds)
at Microsoft.WindowsAzure.Storage.Emulator.Commands.StartCommand.RunCommand()
at Microsoft.WindowsAzure.Storage.Emulator.Program.Main(String[] args)
关于如何以用户 gregv 运行此程序有什么建议吗?还是我应该放弃 gregv 帐户,转而以管理员身份完成我的所有开发工作?
更新:我以用户 gregv 共享了 v11.0 实例,现在当我以管理员身份登录时,我可以使用 SSMS 连接到 lcoaldb 数据库。当我现在以管理员身份登录时,我也可以成功启动模拟器。
但是当我退出管理员帐户并以 gregv 身份登录时,我无法启动模拟器。我真的很想在我的非管理员帐户下进行开发工作,这意味着我必须从该帐户访问模拟器。
【问题讨论】:
-
我认为这个问题可能与 gregv 帐户对 c:\Users\Administrator 具有读写权限这一事实有关。我认为这可能会弄乱模拟器中关于将数据库文件放在何处的检测逻辑。
-
不,不是这样。我删除了 gregv 读取管理员文件夹的权限,它仍然将 mdf 文件放在管理员文件夹中,然后无法启动。
-
逻辑在哪里,把文件放到目录下,不需要读权限...
-
请尝试以管理员身份运行您的命令行工具。然后运行
AzureStorageEmulator.exe start。另请注意,我们必须具有管理权限才能配置 Azure 模拟器。详情请参阅this article。 -
您需要将模拟器初始化为运行模拟器的用户。初始化需要提升,因此您需要临时提升用户帐户本身(而不是作为管理员帐户运行)。在这一一次性设置之后,您可以在没有海拔的情况下运行。我们正在考虑改进模拟器对这种情况的支持。
标签: azure azure-storage