Search code examples
network-programmingasp.net-coreiis-express

Accessing IISExpress for an asp.net core API via IP


I have an asp.net core project running on IIS Express. The URLs (http://localhost:53142/ and https://localhost:44374/) work if I type into my browser as localhost, however, if i put in my IPv4 ip address (192.168.1.72) they don't work.

enter image description here

Side-by-side

enter image description here

I can ping the 192.168.1.72 address just fine.

enter image description here

Why can't I access via ip, and how would I do so?


Solution

  • IIS Express does not allow remote connections by default.

    Here are two options for you:

    1. Configure to use UseKestrel like

      public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
          WebHost.CreateDefaultBuilder(args)
              .UseUrls("http://0.0.0.0:5000;https://0.0.0.0:5001")
              .UseKestrel()
              .UseStartup<Startup>();
      

      Then, run project with ProjectName from VS, you will be able to access by http//ip:5000

    2. Try to create IIS Debug profile

      Run VS 2017 as administrator-> Right Click project-> Properties->Debug->NEW->Enter IIS->Launch choose IIS-> Launch IIS Profile-> Access with ip address

    Update:

    If you insist on IIS Express, try the VS Extension Conveyor by Keyoti