windows azure development storage blob service not starting
Asked Answered
M

5

19

When I start development storage emulator, I get an error

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

I guess this is happening only for BLOB, other services i.e. Queue and Tables start successfully

What could be the problem? I am using Azure SDK v1.4

Development Storage Emulator start error

Mita answered 20/6, 2011 at 17:49 Comment(2)
What version of the Azure SDK are you using? I seem to recall that this was a confirmed bug that was fixed.Token
For anyone recently experiencing this issue, I found that I got this after I installed HDInsight, the Azure Hadoop feature windowsazure.com/en-us/documentation/services/hdinsight. Java listens on ports that conflict with the Azure Storage emulator.Griffin
C
27

Stop BitTorrent. In my experience, this error is usually a port conflict, and BitTorrent does typically grab port 10000. If it's not BitTorrent, look for other apps that might be holding on to port 10000. Netstat can probably help.

Canaliculus answered 20/6, 2011 at 19:2 Comment(1)
Thanks for the idea!!! For me the conflict is with Cerberus FTP Server (the soap interface)!Tanana
P
17

This might be another process using the port that Azure dev storage is using.

To figure out which app is that, run netstat first:

netstat -p tcp -ano | findstr :10000

You will get a process id (PID) in the last column:

  TCP    0.0.0.0:10000          0.0.0.0:0              LISTENING       2204

It means that process listening to this port is ID 2204. Then run taklist:

tasklist /fi "pid eq 2204"

So you will see something like this:

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

So now you know that SMSvcHost.exe is listening on that port.

If you can't stop the process using the port, there's a way to remap the ports used by DevFabric. The solution is taken from this blog post:

You could do that by navigating to C:\Program Files\Windows Azure SDK\v1.4\bin\devstore (replace 1.4 with your SDK version) and opening DSService.exe.config. From there you could change the configuration and make your services listen to other ports.

For me in v1.6 the path was C:\Program Files\Windows Azure Emulator\emulator\devstore\DSService.exe.config

For SDK v2.5 / Storage v3.4 the path is %ProgramFiles(x86)%\Microsoft SDKs\Azure\Storage Emulator\WAStorageEmulator.exe.config

For Emulator v4+ the path is %ProgramFiles(x86)%\Microsoft SDKs\Azure\Storage Emulator\AzureStorageEmulator.exe.config

But be careful, because you will not be able to use UseDevelopmentStorage=true in your connection string anymore (e.g. connect with Azure Storage Explorer).

In order to connect, use a custom connection string that is targeting the new endpoint ports you defined. You'll still want to connect using the standard, well-known storage emulator account name and key. An example connection string can be found here.

Pyrimidine answered 4/1, 2012 at 18:0 Comment(0)
J
1

I had the same issue, but in my case, the problem was somewhere else. There was the process System (PID 4) listening on the port 10,000, so it's obvious I wasn't able to kill such process. The only workaround was to reboot Windows (Windows 7 64-bit), but that's too extreme and time consuming.

The most challenging part was to identify, why is the System process listening on that port. Google didn't help at all in this case.

So I simply tried to connect to the port 10,000 on localhost using Netcat (better Telnet) and send there something:

$ nc 127.0.0.1 10000

I quickly noticed from the response, that there is an HTTP server listening on the port 10,000. The most important information in the response was this header:

Server: Microsoft-HTTPAPI/2.0

Then it was really fast to free this port for Azure Emulator. Brief googling revealed the details about what is this thing actually doing: HTTP Server API, and most importantly who is it doing: Windows HTTP Services.

Then I went to Services Management Console, found the service called Service WinHTTP WPAD which was running and simply stopped it. And voila, the port 10,000 is free as a bird now.


Does anyone know how does it work? I guess that some 3rd application creates a listening HTTP server on the port 10,000 using the WinHTTP WPAD service. I doubt that it's anything from Microsoft since they wouldn't configure the Azure Emulator to use the port already used by them.

Jaret answered 1/9, 2015 at 17:38 Comment(0)
A
1

this error really bothered me and finally I have figured out how to fix it.

Yes, the error is caused by port conflict, the port 10000 is used by another process, in my case, it is a process called "azurite"... not sure what it, but sounds like something relate to azure :)

Anyways, this command to identify the PID of the process that uses 10000

netstat -p tcp -ano | findstr :10000

The last number '132864' is the pid

enter image description here

run

tasklist /fi "pid eq 132864"

to see the name of the process.

Finally kill it by

taskkill /pid 132864 /f

and then I can successfully run the emulator

Achlamydeous answered 20/1, 2023 at 19:27 Comment(0)
Z
0

In my case, there was no bit Torrent on my system. However, the port 1000 was being used by some java.exe. I figured out that running HDInsight locally doesn't work with Azure blob storage. So I went to Azure Storage Emulater UI and unchecked the blob. After that this issue got resolved.

Zeta answered 1/11, 2013 at 18:13 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.