Allowing remote access to your IIS Express service

While developing an ASP.NET application with the IISExpress service, you might like to see how it looks on your mobile device connected to your LAN via Wi-Fi, or just any computer connected to your network.

If you do not happen to have the full IIS installed already, you can allow your IISExpress service to serve remote pages quickly and easily by following these steps.

Warning: By following these instructions you are solely liable for any security breach or problems you may face. Do not use this information if you do not agree with that statement.

Assume your machine name is ‘jedi’, and your port number is ‘16253’, replace appropriately.

1. Run a command prompt as administrator, and type in

netsh http add urlacl url=http://jedi:16253/ user=everyone

2. Open up the following file in Notepad or Visual Studio

MyDocuments\IISExpress\config\applicationhost.config

change the binding from:

<binding protocol="http" bindingInformation="*:16253:localhost" />

to:

<binding protocol="http" bindingInformation="*:16253:jedi" />

3. Restart the IISExpress service (use the tray icon or task manager, or a command prompt, type issreset).

4. In Visual Studio, change your Project->Properties->Web settings to launch http://jedi:16253 instead of http://localhost:16253

5. In a web browser on your development machine type http://jedi:16253/

6. Assuming all is good – Open up the port on the firewall.

        • Goto the Windows Firewall with Advanced Security panel
        • Create a new inbound rule
        • Click ‘Port’
        • Click ‘Next’
        • Click TCP
        • Enter a specific port 16253
        • Click ‘Next’
        • Click ‘Allow the connection’
        • Click ‘Next’
        • Click ‘Next’ (you could untick Public)
        • Give it a name “My MVC App” and press Finish.

7. You should now be able to access the page on the mobile device when connected to the Wi-Fi using http://jedi:16253/

For more advanced information see Scott Hansleman’s blog post. Also read some of the comments below where others have found problems and solutions.

28 thoughts on “Allowing remote access to your IIS Express service

  1. there should really be some instructions on how to roll this back. Specifically how to delete the netsh entry.

    1. I ran into some issues when trying to do this. IIS had some errors. After some googling, I found a way to revert back. Quite simple, just change “add” to “delete” and omit “user=everyone” and it was fine.

      netsh http delete urlacl url=http://jedi:16253/

  2. Sorry sir… Ur post helped me alot!!!… Created successfully but not accessing in Mobile sir…Please help me…Ma mailid is _REMOVED_

  3. Sent by email – Hi Kovendan,

    Is your mobile device attached to the same Wifi as your server?

    Try accessing the page from another PC, laptop or tablet on the same Wifi and directly wired into the router.
    Try the ping utility too..

    Hope that helps you get closer.

    1. Hello Sir,
      When clicking the iisexpress.exe[C:/progmFiles/IIs express/IISexpress.exe] , IIS failed to start and error is trace error.Is that the problem for not getting the result in mobile browser.
      IIS working in other connected computers while tying the IP addrss of Main system but not in Mobile…
      Is there any Special Browser to view the app in mobile sir….Help me sir

      1. Typically when running IISExpress.exe from the command line, it outputs an error if it couldn’t start (possibly a problem with one of the .config files). In addition there’s a logs directory where more information may be available.
        Maybe that will point you in the right direction to then Google for the solution!

  4. Thanks for this – it helped me enormously.

    I’m working in a team, with all code shared across all developers, so I didn’t want to change the project properties, as this would affect other team members development environments. So, rather than change the existing binding for IIS Express, I added a new one. As long as you use a different port – IIS Express will serve to multiple bindings happily.

    1. I think I used IIS8 and Windows 8 to do this on in the first place – it’s been a while since I’ve had to do this. Try turning your firewall off temporarily (at your own risk blah blah blah) to see if that’s causing you an issue.

  5. This worked great (Thank You) until I turned on ‘Windows Authentication’.

    I can access my IIS Express site on my dev pc, but I get a Windows Authentication user/password dialog box whenever I access it from another pc on my home network WORKGROUP.

    If I set windowsAuthentication back to false and set anonymousAuthentication back to true, then everything works Peachy.

    Any help appreciated.

    Regards, Paul

  6. Failed to register URL “http://10.151.64.253:55085/” for site “SiAkad_Web” application “/”. Error description: Access is denied. (0x80070005)

  7. I remember running into the same problems while trying this workflow a few months ago.

    Which is why I wrote a simple proxy utility specifically for this kind of scenario: https://github.com/icflorescu/iisexpress-proxy

    Using the IIS Express Proxy, it all becomes quite simple – no need to “netsh http add urlacl url=http://jedi:16253/ user=everyone” or to mess up with your “applicationhost.config”.

    Just issue this in command prompt:

    iisexpress-proxy 16253 to 3000

    …and then you can point your remote devices to http://jedi:3000.

    Most of the times simpler IS better.

    1. This blog post is quite old now, so might have worked at the time with those specific versions. If you work out what’s wrong and how to fix it please come back and leave a comment for others.

      I’m not actively updating this particular topic any more.

      Kind Regards

      Giles

  8. I never ever comment on these type of website, but I have to say THANKS !!! its working just because of Point 6 🙂

  9. Note the location of the applicationhost.config is different for Visual Studio 2017. See here {solutiondir}\.vs\config\applicationhost.config

  10. How to do this with localhost running on https? My MVC app has too many dependencies, URL rewrite and RequireHttps attributes everywhere. Also I was able to use ngrok with the port that was opened, would it be possible with https? Using ngrok or similar ones I can easily run my apps running on http for Google’s mobile friendly test. That’s the main reason for doing this actually. I actually did http forwarding in phones and macs in same wifi using a npm library iisexpress-proxy then with Conveyor extension for VS and both works but wasn’t able to do that with my https app.

Leave a comment