Azure存储模拟器错误,无法启动

时间:2014-04-27 01:25:58

标签: azure azure-table-storage

这个错误真的让我抓狂。 (终端以管理员模式运行)

在sql server 2014中初始化azure存储模拟器:

C:\Program Files (x86)\Microsoft SDKs\Windows Azure\Storage Emulator>.\wastorage
emulator init -server MY-PC
Windows Azure Storage Emulator 3.0.0.0 command line tool
The storage emulator was successfully initialized and is ready to use.

启动服务器时出错:

C:\Program Files (x86)\Microsoft SDKs\Windows Azure\Storage Emulator>.\wastorage
emulator start
Windows Azure Storage Emulator 3.0.0.0 command line tool

Unhandled Exception: System.TimeoutException: Unable to open wait handle.
   at Microsoft.WindowsAzure.Storage.Emulator.Controller.EmulatorProcessControll
er.InternalWaitForStorageEmulator(Int32 timeoutInMilliseconds)
   at Microsoft.WindowsAzure.Storage.Emulator.Controller.EmulatorProcessControll
er.EnsureRunning(Int32 timeoutInMilliseconds)
   at Microsoft.WindowsAzure.Storage.Emulator.StartCommand.RunCommand()
   at Microsoft.WindowsAzure.Storage.Emulator.Program.Main(String[] args)

25 个答案:

答案 0 :(得分:129)

检查您是否使用端口10000 运行 BitTorrent / uTorrent或类似软件。

查看Steve Marx关于此问题的博客文章。 http://blog.smarx.com/posts/windows-azure-storage-emulator-the-process-cannot-access-the-file-because-it-is-being-used-by-another-process

如果帖子消失,检查是否有其他软件正在使用该端口的命令是:

C:\Users\smarx>netstat -p tcp -ano | findstr :10000
  TCP    127.0.0.1:10000        0.0.0.0:0              LISTENING       3672

答案 1 :(得分:16)

我在Azure工具更新(2.3版本)后遇到同样的问题。经过几个小时的研究,我发现了一个奇怪的解决方案 - 设置'启动Windows Azure存储模拟器'错误'错误' (在Azure项目的属性中)。

答案 2 :(得分:9)

确保初始化模拟器的用户与启动模拟器的用户相同。请注意,如果您作为其他用户提升以运行初始化,则初始化仅适用于该用户。

如果这没有帮助,您可以尝试使用-inprocess标志启动模拟器以获取更详细的错误消息:

WAStorageEmulator start -inprocess

答案 3 :(得分:9)

总结并在此问题的其他答案中添加其他要点。

在记事本或记事本++编辑器中打开C:\ Program Files(x86)\ Microsoft SDKs \ Azure \ Storage Emulator \ AzureStorageEmulator.exe文件。 查看服务部分。

<services>
  <service name="Blob" url="http://127.0.0.1:10000/"/>
  <service name="Queue" url="http://127.0.0.1:10001/"/>
  <service name="Table" url="http://127.0.0.1:10002/"/>
</services>

尝试在网络浏览器中打开“Blob”的网址。 就我而言,它是

http://127.0.0.1:10000/

如果您无法打开URL或出现错误,则这就是您无法启动Azure存储模拟器的原因。

尝试以下步骤解决问题。

1)检查端口10000是忙还是由任何其他进程使用。

要知道这一点,您可以在命令提示符中键入以下命令

netstat -na | find "10000"

杀死这个过程。

现在以-inprocess模式启动Azure存储模拟器

在Azure存储模拟器的命令提示符下键入

AzureStorageEmulator.exe start -inprocess

Ctrl + c然后

AzureStorageEmulator.exe start

如果这不能解决问题,请尝试第二步。

2)运行此

netsh http add iplisten 127.0.0.1

然后在Azure存储模拟器的命令提示符下键入

AzureStorageEmulator.exe start -inprocess

Ctrl + c然后

AzureStorageEmulator.exe start

答案 4 :(得分:8)

以管理员身份运行Microsoft Azure命令提示符,并尝试首先使用AzureStorageEmulator.exe init初始化,然后开始使用AzureStorageEmulator.exe启动命令。它适用于我的案例。

答案 5 :(得分:5)

在文件 C:\ Program Files(x86)\ Microsoft SDKs \ Azure \ Storage Emulator \ AzureStorageEmulator.exe.config 中 您需要更改端口号:

screenshot of changes needed

答案 6 :(得分:5)

尝试使用以下命令运行命令提示符也是值得的:&#34;以管理员身份运行&#34; 然后运行命令: C:\ Program Files(x86)\ Microsoft SDKs \ Azure \ Storage Emulator&gt; AzureStorageEmulator.exe start

这对我有用了!

答案 7 :(得分:5)

我遇到了同样的问题,因为我必须将我的机器重新加入域并重新创建用户配置文件。 我注意到它是从高架cmd选项-inprocess开始的。 然后我意识到它与urlac有关,我用以下命令解决了删除旧的问题:

(from elevated cmd)
netsh http delete urlacl url=http://127.0.0.1:10000/
netsh http delete urlacl url=http://127.0.0.1:10001/
netsh http delete urlacl url=http://127.0.0.1:10002/

之后,只需像往常一样启动,该工具将重新创建必要的内容。 现在我可以在不抬高的情况下使用它。

答案 8 :(得分:4)

另一个选项是更改模拟器在位于存储模拟器目录中的配置文件中使用的ip绑定。

查找wastorageemulator.exe.config 并改变

<services>
      <service name="Blob" url="http://127.0.0.1:10000/"/>
      <service name="Queue" url="http://127.0.0.1:10001/"/>
      <service name="Table" url="http://127.0.0.1:10002/"/>
   </services>

如果另一个应用程序已经在使用该端口并且您无法卸载,那么这将非常有用。

答案 9 :(得分:2)

这里有一些信息可能会有所帮助:

AzureStorageEmulator.exe init –server MyMachine –sqlinstance **.** –forcecreate –inprocess

请参阅此link

答案 10 :(得分:2)

对我来说,所需的端口上没有任何运行,问题是Visual Studio不在Administrator模式下启动,因此无法启动该过程。

当我从“开始”转到Azure存储仿真器CLI时,它启动了一个也不处于管理员模式的命令外壳,显然会产生相同的结果。

以Admin模式打开命令外壳即可完成这项工作。

答案 11 :(得分:1)

我刚碰到这个,结果发现Microsoft Teams正在使用端口10000.强制团队退出解决了这个问题。

答案 12 :(得分:1)

  1. 以管理员身份打开命令提示符
  2. 运行命令:cd C:\Program Files (x86)\Microsoft SDKs\Azure\Storage Emulator
  3. 运行命令:AzureStorageEmulator start

答案 13 :(得分:1)

我的原因是Hyper-V。它保留了很多端口。您可以检查保留的端口+ deployment-archive + scripts - copy.ps1 - stop.ps1 - start.ps1 - validate.ps1 - appsec.yml 。最简单的解决方案-更改配置文件中的端口。

答案 14 :(得分:1)

首先,您应该初始化模拟器数据库并开始配置 以管理员身份使用密钥初始化的AzureStorageEmulator.exe: AzureStorageEmulator.exe初始化

然后,如果您仍然收到错误消息:

服务状态:Blob http://127.0.0.1:10000/错误 该进程无法访问该文件,因为它正在被另一个进程使用 错误:无法启动存储模拟器。

尝试将127.0.0.1的所有服务更改为localhost C:\ Program Files(x86)\ Microsoft SDKs \ Azure \ Storage Emulator \ AzureStorageEmulator.exe.config

答案 15 :(得分:1)

Windows备份代理正在我的VM盒的端口10000上运行-移至10003(通过.exe.config文件起作用)

答案 16 :(得分:1)

如果尝试通过Visual Studio =>服务器资源管理器启动“ Azure存储模拟器”,请确保以管理员身份启动Visual Studio。 通过以管理员身份运行命令提示符,在命令提示符处运行“ Azure存储模拟器”,可以解决此问题。

答案 17 :(得分:1)

在尝试运行Azure Functions时,Visual Studio遇到了类似的问题。 AzureStorageEmulator.exe初始化对我有用

答案 18 :(得分:1)

对于新发布的documentdb模拟器的用户...... Microsoft认为documentdb模拟器使用与存储模拟器相同的端口是个好主意;)访问存储的唯一方法是关闭documentdb模拟器和重新启动Visual Studio,然后再次使用它:facepalm:

答案 19 :(得分:1)

我遇到了同样的问题。我发现,端口10000正被另一个进程使用。就我而言,utorrent正在使用它。如果你正在使用它,它可能是Bittorrent。卸载后,它可以顺利地改变我的数据。

如果您的torrent下载对您来说意义重大,您可以考虑从这个角度解决您的问题。我希望这有效。

答案 20 :(得分:1)

我最近发生了这种情况,这是因为我最近安装了HDInsight模拟器。看来这是自动启动存储模拟器,当VS尝试启动它时导致错误,导致错误。

设置&#34;启动Microsoft Azure存储模拟器&#34;在这种情况下,值为False。

答案 21 :(得分:0)

对我有用:

  1. 按Windows键并搜索“ Azure Storage Emulator”
  2. 它向我显示一条错误消息“ ..无法创建数据库“ AzureStorageEmulatorDb510”
  3. 我打开了SSMS并查找了该数据库,但是我发现了“ AzureStorageEmulatorDb59”
  4. 我将数据库重命名为“ AzureStorageEmulatorDb510”
  5. 再试一次运行“ Azure Storage Emulator”

答案 22 :(得分:0)

问题可能是端口10000被占用。存储模拟器在端口10000上运行。因此,您需要终止该进程。在Windows上,以admin身份打开cmd并运行以下命令。

首先找到占用端口10000的进程

netstat -ano | findstr :10000

杀死进程

taskkill /PID <process id> /F

现在尝试再次启动模拟器。

答案 23 :(得分:0)

我遇到了同样的问题,我尝试了很多方法,都没有阻塞端口 10000。我尝试将模拟器配置更新为 Localhost 而不是 127.0.0.1 此处

<services>
  <service name="Blob" url="http://127.0.0.1:10000/"/>
  <service name="Queue" url="http://127.0.0.1:10001/"/>
  <service name="Table" url="http://127.0.0.1:10002/"/>
</services>

但我又遇到了超时问题。

最后,我不得不卸载我的 IIS。并解决了问题。应该有办法让它们协同工作。

答案 24 :(得分:0)

我遇到了断电,并在重新启动后收到了 Unhandled Exception: System.TimeoutException 消息,试图从 Visual Studio 2019 启动和调试 Azure Functions 项目。我尝试了该线程上的许多(如果不是全部)其他建议答案徒劳无功。包括但不限于...

  1. 使用端口 10000-10002 检查进程,(没有)
  2. 以管理员身份运行 Visual Studio 和/或 AzureStorageEmulator
  3. 删除/重新创建存储数据库
  4. 从@Ram Pratap 的回答中尝试了 netsh http add iplisten 127.0.0.1
  5. 更改了主机名和端口号绑定
  6. 尝试了 AzureStorageEmulator initAzureStoreEmulator start -inprocess

最终对我有用的是......

  1. 使用 standalone installer 安装存储模拟器
  2. 这让我可以使用添加和删除程序完全卸载存储模拟器,然后重新启动。
  3. 接下来,我使用 standalone installer 重新安装了存储模拟器,然后重新启动。
  4. 最后我运行了 AzureStorageEmulator start,它奏效了!