windows azure开发存储blob服务未启动

wnvonmuf  于 2023-01-21  发布在  Windows
关注(0)|答案(5)|浏览(145)

启动开发存储模拟器时,我收到一个错误
The process cannot access the file because it is being used by another process
我猜这只会发生在BLOB上,其他服务(如队列和表)也会成功启动
可能是什么问题?我使用的是Azure SDK v1.4

odopli94

odopli941#

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

3okqufwl

3okqufwl2#

这可能是使用Azure开发存储正在使用的端口的另一个进程。
要确定是哪个应用程序,请先运行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正在侦听该端口。
如果无法停止使用该端口的进程,有一种方法可以重新MapDevFabric使用的端口。解决方案取自this blog post
你可以通过导航到C:\Program Files\Windows Azure SDK\v1.4\bin\devstore(将1.4替换为你的SDK版本)并打开DSService.exe.config来执行此操作。从那里,你可以更改配置并使你的服务侦听其他端口。
对于我来说,在v1.6中,路径是C:\Program Files\Windows Azure Emulator\emulator\devstore\DSService.exe.config
对于SDK v2.5 /存储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存储资源管理器连接)。

要进行连接,请使用以您定义的新终结点端口为目标的自定义连接字符串。您仍希望使用standard, well-known storage emulator account name and key进行连接。此处提供了连接字符串示例。

qltillow

qltillow3#

我也遇到过同样的问题,但在我的例子中,问题出在了别的地方。有一个**进程 * 系统 (PID 4)在监听端口10,000*,所以很明显我无法杀死这样的进程。唯一的解决办法是重新启动Windows(Windows 7 64位),但这太极端了,也太耗时了。
最具挑战性的部分是确定,为什么 * 系统 * 进程监听该端口。谷歌在这种情况下没有提供任何帮助。
所以我只是尝试使用 * 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 Emulator使用他们已经使用的端口。

xxhby3vn

xxhby3vn4#

在我的情况下,我的系统上没有位Torrent。但是,端口1000正被一些java.exe使用。我发现本地运行HDInsight不适用于Azure Blob存储。因此,我转到Azure存储模拟器UI并取消选中Blob。之后,这个问题得到了解决。

k3fezbri

k3fezbri5#

这个错误真的让我很困扰,最后我终于想出了解决的办法。
是的,错误是由端口冲突引起的,端口10000被另一个进程使用,在我的情况下,它是一个名为“azurite”的进程...不确定它是什么,但听起来像是与azure有关的东西:)
无论如何,这个命令用来识别使用10000的进程的PID

netstat -p tcp -ano | findstr :10000

最后一个数字“132864”是pid

运行

tasklist /fi "pid eq 132864"

以查看进程的名称。
最后杀了它

taskkill /pid 132864 /f

然后我就可以成功运行模拟器

相关问题