source

LAN을 통해 Visual Studio 디버깅 IIS Express 서버에 연결하는 중

ittop 2023. 7. 16. 17:58
반응형

LAN을 통해 Visual Studio 디버깅 IIS Express 서버에 연결하는 중

VS2012에서 개발한 테스트 ASP.NET MVC3 애플리케이션이 있습니다. 수 .http://localhost:<portnumber> 할 는 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅠhttp://<ip>:<portnumber>알겠습니다HTTP error 400: Bad request. Invalid Host Name.IIS Express에서 실행되는 한 서버 구성에 액세스할 수 없습니다.

이것을 해결할 방법이 있습니까?

갱신하다

저는 그 과정을 더 잘 설명하는 비디오를 만들었습니다, https://youtu.be/5ZqDuvTqQVs .

Visual Studio 2013 이상을 사용하는 경우 관리자 권한으로 Visual Studio 2013을 실행해야 합니다.


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>

변할내용을 합니다.bindingInformation=":8080:localhost"bindingInformation="*:8080:*" 포트 번호가 것입니다

참고: 작동하지 않는 경우 다음 작업을 수행합니다.bindingInformation="*:8080:별표를 제거할 수 있습니다.

그런 다음 방화벽이 해당 포트에서 수신 연결을 허용하는지 확인합니다.구성 파일을 다시 로드하려면 시스템이나 Visual Studio 이상을 다시 시작해야 합니다.

이 방법이 효과가 없으면 다음 답변을 참조하십시오. https://stackoverflow.com/a/5186680/985284

Visual Studio 2015 비관리자

  1. dir의 인 파의션dir에서.vs\config\applicationHost.config, 줄바꿈

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

    로.

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

    (44302는 포트)


  1. admin 명령 프롬프트에서 다음을 수행합니다.

    관리자가 아닌 사용자가 포트에 바인딩할 수 있도록 설정

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

    ii. 방화벽 통과 허용

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


  1. Visual Studio에서 디버깅 시작

iispress 구성 파일을 수정하는 것을 제외하고는 아래와 같은 명령도 실행해야 합니다.

netsh http add urlacl url=http://*:49419/ user=모두

Visual Studio를 관리자로 실행하지 않는 방법

Garret @shangkeyun의 답변을 모두 사용하면 Visual Studio를 관리자로 실행하지 않고도 실행 중인 웹 사이트에 연결할 수 있습니다.

  1. 을 엽니다.%USERPROFILE%\My Documents\IISExpress\config\applicationhost.config
  2. 다을사여사검을 사용하여 합니다.name=MySiteName
  3. 의 항목복을 합니다.<binding> <bindings>부분.이제 두 줄로 연결해야 합니다.binding.
  4. 바인딩 정보에서 "localhost" 부분을 제거합니다.
  5. 이제 포트가 다음과 같다고 가정하면 다음과 같습니다.12345:

    <binding protocol="http" bindingInformation="*:12345:localhost" />
    <binding protocol="http" bindingInformation="*:12345:" />
    
  6. 관리자가 아닌 사용자가 포트에 바인딩할 수 있도록 설정

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

2019년 편집: gregmac이 VS 인스턴스를 화이트리스트에 추가했습니다.나는 이것이 필요하지 않았지만, 어쨌든 그것을 나열합니다.

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

저는 @Garret Fogerlie의 게시물에 댓글을 추가할 수 없기 때문에 댓글 문제에 대한 답변(@Y. 및 2013을 사용하여 관리 하고 Ecarri @SamuelEdwinWard를 했습니다.application.config파일.

디버그를 시작한 후 동일한 오류 메시지가 표시된 것을 확인하고 다시 시작했습니다.application.config그리고 제 사이트에 대한 새로운 항목이 Y처럼 생성된 것을 보았습니다.에카리의 문제.

그래서 저는 디버깅을 중단하고 Visual Studio에서 솔루션을 열어두고 편집했습니다.application.config새 항목에 대해 다시 파일을 작성합니다.저는 또한 간단히 제거했습니다.*노래와localhost완전히, 그래서 저는 새 항목에 대해 다음과 같은 것을 얻었습니다.

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

일부 사용자는 %USERPROFILE% 디렉토리를 사용하여 수정 및 테스트하는 데 많은 시간을 할애할 수 있습니다.VS 디버그를 실행하는 경우 $(solutionDir).vs\config\applicationhost.config를 사용합니다.

덕분에:

Documents/IIExpress/config의 applicationhost.config로 이동합니다.

작업 중인 특정 사이트의 항목을 찾습니다.

추가:

<binding protocol="http" bindingInformation="*:<your site port>:*" />

기존의 사람들 앞에서

 <binding protocol="http" bindingInformation="*:<your site port>:localhost" />

VS2013을 사용하지 않고 문제를 해결하려면 다시 시작할 때 새 웹 사이트 xml 항목을 생성해야 합니다.관리자로 실행해야 합니다.

위의 구성 후 Visual Studio를 관리 모드로 실행해야 했습니다.

enter image description here

이것이 저에게 도움이 되었습니다.

  • IIS 관리자 시작
  • 프로젝트 폴더를 가리키는 새 가상 디렉터리를 추가합니다(C:\VSProjects나의 경우)
  • IIS 관리자 내에서 새 가상 디렉터리를 선택합니다.선택한다.Directory Browsing옵션 목록에서 선택합니다.오른쪽에 있는 것이 있습니다.Enable단추를 채우다클릭합니다.

이제 다음을 통해 네트워크의 폴더 및 프로젝트 보관함에 액세스할 수 있습니다.mypcname\VSProjects\myProj\outputBinViewer.

Visual Studio Code에서 디버깅과 유사한 문제가 발생한 경우 다음을 추가하여 해결했습니다.

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

.json을 시작합니다.

보아하니 기본적으로 http 프로토콜을 'localhost:5000'에 바인딩하므로 원격 또는 로컬이 아닌 localhost함께 작동합니다.

다른 컴퓨터에서 오는 요청으로 중단점에 도달하려는 경우 방화벽 설정 및/또는 바이러스 백신을 확인하는 것을 잊지 마십시오.

이것이 도움이 되길 바랍니다.

언급URL : https://stackoverflow.com/questions/14725455/connecting-to-visual-studio-debugging-iis-express-server-over-the-lan

반응형