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

时间:2011-06-20 17:49:48

标签: 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

Development Storage Emulator start error

4 个答案:

答案 0 :(得分:27)

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

答案 1 :(得分:15)

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

要找出哪个应用,首先运行netstat

netstat -p tcp -ano | findstr :10000

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

  TCP    0.0.0.0:10000          0.0.0.0:0              LISTENING       2204

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

tasklist /fi "pid eq 2204"

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

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
SMSvcHost.exe                 2204 Services                   0     29 300 K

现在您知道SMSvcHost.exe正在侦听该端口。

如果无法使用端口停止进程,则可以重新映射DevFabric使用的端口。解决方案取自this blog post

  

您可以通过导航到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

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

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

要进行连接,请使用定位您定义的新端点端口的自定义连接字符串。您仍然希望使用standard, well-known storage emulator account name and key进行连接。示例连接字符串可以是found here

答案 2 :(得分:1)

我有同样的问题,但就我而言,问题出在其他地方。有进程系统(PID 4)侦听端口10,000 ,所以很明显我无法杀死此类进程。唯一的解决方法是重启Windows(Windows 7 64位),但这太极端且耗时。

最具挑战性的部分是识别,为什么 System 进程正在侦听该端口。在这种情况下,谷歌根本没有帮助。

所以我只是尝试使用 Netcat (更好的Telnet)连接到 localhost 上的端口10,000并发送一些内容:

$ nc 127.0.0.1 10000

我很快从响应中注意到,有一个HTTP服务器侦听端口10,000。响应中最重要的信息是这个标题:

Server: Microsoft-HTTPAPI/2.0

然后,为Azure Emulator释放此端口真的很快。简短的谷歌搜索显示了这个东西实际上在做什么的细节: HTTP Server API,最重要的是是谁Windows HTTP Services

然后我转到服务管理控制台,找到了名为 Service WinHTTP WPAD 的服务,该服务正在运行,只是已将其停止。瞧,10,000港口现在可以像鸟一样免费。

有谁知道它是如何工作的?我想第三个应用程序使用 WinHTTP WPAD 服务在端口10,000上创建一个侦听HTTP服务器。我怀疑它是微软的任何东西,因为它们不会将Azure仿真器配置为使用它们已经使用过的端口。

答案 3 :(得分:0)

就我而言,我的系统上没有Torrent。但是,某些java.exe正在使用端口1000。我发现在本地运行HDInsight不适用于Azure blob存储。所以我去了Azure Storage Emulater UI并取消选中了blob。之后,这个问题得到了解决。