When starting the Azure Storage Emulator, you may see the error message “Error: Unable to start the storage emulator”. One of the reasons, and which happens to be the problem I ran in to, could be due to the port already being used by another process.
By default, Azure Storage emulator runs on ports 10000-10002. Using the Powershell command below will list out in a table the processes running on port 10000:
Get-Process -Id (Get-NetTCPConnection -LocalPort 10000).OwningProcess
To resolve this, the ports for Azure Storage Emulator can be changed by editing the config file at C:\Program Files (x86)\Microsoft SDKs\Azure\Storage
Emulator\AzureStorageEmulator.exe.config. Inside this file search for the entries shown below and change the conflicting ports to an available port:
<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/"/>
Once you have done this you should now be able to run the emulator.
A better solution to the above is to use Azurite instead, it is supposedly going to supersede the local emulator and also works on Linux. Azurite allows you to use docker and run the storage emulator in a container that you can incorporate into your other container development workflows in a seamless way.