Connecting to Visual Studio debugging IIS Express server over the lan

前端 未结 10 921
慢半拍i
慢半拍i 2020-11-27 10:19

I have a test ASP.NET MVC3 application developed in VS2012. When I start debugging the app is accessed from the host machine via the request to http://localhost:

相关标签:
10条回答
  • 2020-11-27 11:14

    Since I am unable to add a comment to @Garret Fogerlie's post and in response to the commenters' issue (@Y.Ecarri and @SamuelEdwinWard), I followed what Garret suggested, using Visual Studio 2013, running it in Admin mode and changing the application.config file.

    After launching debug and seeing that I got the same error message, I went back into application.config and saw that a new entry for my site had been created just like Y.Ecarri's issue.

    So I stopped debugging, kept my solution open in Visual Studio, and edited the application.config file again for the new entry. I also simply removed the * sings and localhost entirely, so I had the following for the new entry:

    <binding protocol="https" bindingInformation=":44300:" />

    0 讨论(0)
  • 2020-11-27 11:16

    Update

    I made a video that better describes the process, https://youtu.be/5ZqDuvTqQVs

    If you are using Visual Studio 2013 or above, make sure you run it as an administrator for this to work.


    Open the %USERPROFILE%\My Documents\IISExpress\config\applicationhost.config (in VS2015 it may be $(solutionDir)\.vs\config\applicationhost.config) file. Inside you should see something like this:

    <site name="WebSite1" id="1" serverAutoStart="true">
        <application path="/">
            <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
        </application>
        <bindings>
            <binding protocol="http" bindingInformation="*:8080:localhost" />
        </bindings>
    </site>
    

    Change the bindingInformation=":8080:localhost" to bindingInformation="*:8080:*" (the port number, 8080 in my case, will differ.)

    Note: If it does not work try with bindingInformation="*:8080: the asterix can be removed.

    Then make sure your firewall is allowing incoming connections on that port. You may need to restart the system or at least Visual Studio to get IISExpress to reload the config file.

    If this doesn't work, take a look at this answer: https://stackoverflow.com/a/5186680/985284

    0 讨论(0)
  • 2020-11-27 11:16

    VisualStudio 2015 Non-Admin

    1. In your solution dir, in the file .vs\config\applicationHost.config change the line

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

      to

      <binding protocol="http" bindingInformation=":44302:" />

      (where 44302 is your port)


    1. From an admin command prompt:

      i. Enable non-admin to bind to port

      netsh http add urlacl url=http://*:44302/ user=Everyone

      ii. Allow through firewall

      netsh advfirewall firewall add rule name="IISExpress visualstudio app" protocol=tcp localport=44302 dir=in action=allow


    1. Start debugging from VisualStudio
    0 讨论(0)
  • 2020-11-27 11:16

    Had the a very similar issue debugging in Visual Studio Code, I solved it by adding:

    "env": {
          // ...
          "ASPNETCORE_URLS": "http://*:5000" // change to the port you are using
          // ...
    },
    

    .. to launch.json

    Apparently, by default it binds http protocol to 'localhost:5000', so it works with localhost but not with ip address - neither remotely nor locally.

    If you are trying to hit a breakpoint by a request coming from a different computer, don't forget to check your firewall settings (and/or antivirus)

    hope this helps

    0 讨论(0)
提交回复
热议问题