I know this has already been answered, but there hasn't been a simple solution to this problem posted yet. Here is what I did to get my Mac talking to my Azure Storage Emulator(v4.3) running on my PC all over my LAN.
I'm running Windows 10 Version 1511 with v4.3 of the Azure Storage Emulator at time of writing.
- Make sure the Azure Storage Emulator is off. You can do that by opening up the Azure Storage Emulator command prompt. You can find it by typing
Azure Storage Emulator
into the Start menu. Once it's open, type AzureStorageEmulator stop
.
- Grab the computer's IP address that is running the Azure Storage Emulator. Type
ipconfig
into the command prompt you already have open. Find the IPV4 Address - should be something like 192.168.1.xxx
- Open the file located at
C:\Program Files (x86)\Microsoft SDKs\Azure\Storage Emulator\AzureStorageEmulator.exe.config
- In the
StorageEmulatorConfig
section, edit each service so that it looks like below. Obviously replace the "xxx.xxx.xxx.xxx" with your actual IP address... But keep the ports the same!!! 
- Next, head on over to your firewall settings. We'll need to allow inbound connections to your computer's IP address to these the three ports listed above in the
StorageEmulatorConfig
section. Under Control Panel -> System and Security -> Windows Firewall -> Advanced settings -> Inbound Rules, click New Rule...
on the right side of the screen. You'll be run through a wizard to set up a new rule. I'll outline what to do below:
Rule Type: Select Custom
Program: Select Customize...
then Apply to services only
Protocol and Ports: Set the Protocol type
to TCP
and set the
Remote port
to Specific Ports
and in the input box enter
10000-10002
. That will add the range of ports specified in the
StorageEmulatorConfig
section to this rule and in turn allow
incoming connections through those ports.
Scope: Skip this section, have it apply to all IP addresses for
simplicity sake
Action: Allow the connection
Profile: Depending on what connection profile you are running on, you
should select the appropriate one. In my case, my computer was
connected to the LAN in my house, so I was connected to a Private
network. I deselected Domain
and Public
. I would recommend doing
the same.
Name: Azure Storage Emulator
Hit finish and you're done!... with that part...
Open an Administrator elevated command prompt and enter the following commands (Note: replace the xxx.xxx.xxx.xxx with your IP address!!!):
netsh http add urlacl url=http://xxx.xxx.xxx.xxx:10000/ user=everyone
netsh http add urlacl url=http://xxx.xxx.xxx.xxx:10001/ user=everyone
netsh http add urlacl url=http://xxx.xxx.xxx.xxx:10002/ user=everyone
Open a browser on the device where you are trying to connect to the Azure Storage Emulator and try to access the following URL's:
http://xxx.xxx.xxx.xxx:10002/
http://xxx.xxx.xxx.xxx:10002/
http://xxx.xxx.xxx.xxx:10002/
If you get a response back that's something like this:
InvalidUriThe requested URI does not represent any resource on the server.
then you're golden... If not, post a comment and I'll update my response.
It's important to note that you must update the connection string in the .config file of the project where you are generating the urls to access your images (assuming that's what you're doing). YOU MAY NO LONGER USE THE DEVELOPMENT CONNECTION STRING SHORTCUT! It must be updated to: (replace the xxx.xxx.xxx.xxx with the IP address from above:
DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://xxx.xxx.xxx.xxx:10000/devstoreaccount1;TableEndpoint=http://xxx.xxx.xxx.xxx:10002/devstoreaccount1;QueueEndpoint=http://xxx.xxx.xxx.xxx:10001/devstoreaccount1;
If you have this in your AppSettings section and you format it nicely with \n's, you'll break the string and the Storage component won't recognize it as a valid connection string. So keep it one long annoying string.