windows azure开发存储blob服务无法启动

aja*_*hiz 19 azure azure-storage azure-storage-emulator

当我启动开发存储模拟器时,我收到一个错误

The process cannot access the file because it is being used by another process

我想这只发生在BLOB,其他服务,即Queue和Tables启动成功

可能是什么问题呢?我使用的是Azure SDK v1.4

开发存储模拟器启动错误

use*_*559 27

停止BitTorrent.根据我的经验,这个错误通常是端口冲突,而BitTorrent通常会抓取端口10000.如果它不是BitTorrent,请查找可能保留到端口10000的其他应用程序.Netstat可能会有所帮助.


Nik*_* G. 15

这可能是使用Azure dev存储使用的端口的另一个进程.

要找出哪个应用程序,netstat请先运行:

netstat -p tcp -ano | findstr :10000
Run Code Online (Sandbox Code Playgroud)

您将在最后一列中获得进程ID(PID):

  TCP    0.0.0.0:10000          0.0.0.0:0              LISTENING       2204
Run Code Online (Sandbox Code Playgroud)

这意味着侦听此端口的进程是ID 2204.然后运行taklist:

tasklist /fi "pid eq 2204"
Run Code Online (Sandbox Code Playgroud)

所以你会看到这样的东西:

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
SMSvcHost.exe                 2204 Services                   0     29 300 K
Run Code Online (Sandbox Code Playgroud)

所以现在你知道SMSvcHost.exe正在监听那个端口.

如果您无法使用端口停止进程,则可以重新映射DevFabric使用的端口.该解决方案来自此博客文章:

您可以通过导航到C:\ Program Files\Windows Azure SDK\v1.4\bin\devstore(用SDK版本替换1.4)并打开 DSService.exe.config来实现.从那里,您可以更改配置并使您的服务侦听其他端口.

对于我在v1.6中的路径是C:\Program Files\Windows Azure Emulator\emulator\devstore\DSService.exe.config

对于SDK v2.5/Storage v3.4,路径为%ProgramFiles(x86)%\Microsoft SDKs\Azure\Storage Emulator\WAStorageEmulator.exe.config

对于Emulator v4 +,路径是%ProgramFiles(x86)%\Microsoft SDKs\Azure\Storage Emulator\AzureStorageEmulator.exe.config

但要小心,因为您将无法再使用UseDevelopmentStorage=true连接字符串(例如,连接Azure Storage Explorer).

要进行连接,请使用定位您定义的新端点端口的自定义连接字符串.您仍然希望使用标准的,众所周知的存储模拟器帐户名和密钥进行连接.可以在此处找到示例连接字符串.