"IIS Express 웹 서버를 시작할 수 없습니다." Visual Studio에서


108

Visual Studio를 통해 웹 서비스를 실행하려고했습니다. 다음과 같은 문제에 직면했습니다.

---------------------------
Microsoft Visual Studio
---------------------------
Unable to launch the IIS Express Web server.

Failed to register URL "http://localhost:63591/" for site "xxxxxx" application
"/". Error description: The process cannot access the file because it is being
used by another process. (0x80070020)

---------------------------
OK   
---------------------------

나는 작업 관리자를보고 PID (4) 시스템에 의해 사용되며, 그 설명 것으로 나타났습니다 NT Kernel & System. 그래서 내가 막으려 http service. 모든 종속성 서비스가 중지되었습니다. 하지만 http 서비스를 중지하는 데 문제가 있습니다.

The service is starting or stopping.  Please try again later.

그래서 수동으로 서비스를 중지하고 시작하려고했습니다. 그러나 종료 프로세스는 비활성화됩니다. 누구든지이 문제를 도울 수 있다면 도움이 될 것입니다.


1
Windows 10 업데이트 후 문제 확인 : developercommunity.visualstudio.com/content/problem/580466/…
— Xiao

답변:


131

에서 https://www.davidsalter.co.uk/unable-to-launch-the-iis-express-web-server-error-0x80070020/

오류 코드 0x80070020는을 의미하며 ERROR_SHARING_VIOLATION, IIS Express (또는 IIS)의 경우 수신을 시도하는 포트가 다른 프로세스에서 사용되고 있음을 의미합니다.

사용 netstat포트를 사용하고있는 응용 프로그램을 찾아 명령을 사용합니다.

netstat -ao | findstr <port_number_to_search_for>

이 a매개 변수는 netstat에 모든 연결 및 수신 포트를 표시하도록 지시합니다.

이 o매개 변수는 연결과 관련된 프로세스 ID를 표시하도록 netstat에 지시합니다.

위의 netstat 명령을 실행하면 다음과 같은 출력이 생성됩니다.

C:\>netstat -ao | findstr 4026
TCP    12.0.0.1:4026        cs-pc:4026         LISTENING       9544

표시된 마지막 숫자 (여기서는 9544)가 프로세스 ID입니다.


11
좋은 대답입니다! 솔루션을 설명 할뿐만 아니라 매개 변수의 의미도 포함합니다. 모든 답변이 이랬 으면 좋겠어요!
— Christian Payne

8
이것은 나를 도왔고 불쾌한 PID가 Chrome.exe라는 것이 밝혀졌습니다. Chrome을 다시 시작했는데 문제가 사라졌습니다.
— astrosteve

1
좋은 대답입니다. 이것을 사용하여 skype가 포트 80과 포트 443 모두에서 수신하고 있음을 발견했습니다. skype를 종료 한 다음 정상적으로 iisexpress를 시작할 수 있었으며 이제 포트 80 및 443에 대한 추가 바인딩을 표시했습니다
— Alastair

3
상승 된 cmd 창에서 실행 하여 프로세스 ID로 TASKKILL /PID 2756 /F교체2756
— stackoverfloweth

13
이것은 -n스위치를 사용하여 상당히 빠르게 만들 수 있습니다. "숫자"출력을 사용하므로 IP 주소를 호스트 이름으로 확인하기 위해 DNS를 쿼리하는 데 시간을 낭비하지 않습니다.
— Tullo_x86

52

Windows 10의 Visual Studio 2019에서 프로젝트를 실행하려고 할 때 비슷한 문제가 발생했습니다. 포트가 다른 프로세스에서 사용 중이기 때문에 응용 프로그램을 시작할 수 없습니다. 그러나이 netstat명령은 어떤 응용 프로그램에서도 포트를 사용하지 않는 것으로 나타났습니다.

2 일 동안 인터넷 검색을 한 후 저에게 적합한 솔루션을 찾았습니다. 사용하려는 포트는 제외 된 포트 범위에 있으며 다음 명령을 실행하여 볼 수 있습니다.

netsh interface ipv4 show excludedportrange protocol=tcp

필자의 경우 이러한 포트를 예약 한 범인은 Windows 및 Hyper-V 용 Docker였습니다.

해결책

Docker를 제거하고 (필요하지 않았으므로) Hyper-V를 비활성화했습니다. Hyper-V를 비활성화하려면 제어판-> 프로그램 및 기능-> Windows 기능 켜기 또는 끄기로 이동합니다. Hyper-V를 선택 해제하고 컴퓨터를 다시 시작합니다.

다시 시작한 후 명령 netsh interface ipv4 show excludedportrange protocol=tcp은 예약 된 포트가 없음을 표시했습니다.

그런 다음 관리자 권한 명령 줄에서 다음 명령을 실행하여 제외 된 포트 범위에 내 애플리케이션의 포트를 추가했습니다.

netsh int ipv4 add excludedportrange protocol=tcp startport=50403 numberofports=1 store=persistent

그런 다음 Hyper-V를 다시 활성화하고 (필요한 경우 Docker를 다시 설치할 수 있음) 컴퓨터를 다시 시작했습니다.

Hyper-V는 이제 내 응용 프로그램에서 사용하는 포트를 방해하지 않고 포트를 예약했습니다. 예약 된 포트 범위


이것은 Docker가 필요하다는 점을 제외하고는 나를 위해 일했습니다. 그래서 그것을 제거하는 대신 시작할 때 비활성화했습니다.
— cderrick

3
제외 된 범위를 벗어나 포트를 변경하게되었지만 이로 인해 많은 시간이 절약되었습니다. 감사합니다.
— Cory

2
@Cory처럼 내 포트를 범위를 벗어난 것으로 변경했습니다.
— Nick Rubino

나는 이것을 수년간 찾고 있었다 . 정확히 어떤 앱 이 내 포트를 훔쳤는 지 확인하는 방법이 있는지 궁금합니다 . 감사.
— Simon Mourier

Hyper-V를 비활성화하고 나를 위해 그것을 고정 재부트
— 카일 버켓

30

나는 같은 문제가 있었다. 방금 Visual Studio를 다시 시작했는데 작동했습니다.


1
내 컴퓨터가 업데이트에서 다시 시작되었고 netstat가 포트를 사용하는 프로세스를 표시하지 않았습니다. 이것은 효과가 있었던 유일한 해결책이었습니다. 감사!
— goodies4uall 2013

1
내 컴퓨터도 다시 시작해야했습니다
— Mahmoud Hboubati

놀랍게도 Visual Studio (2017)를 다시 시작하면 저에게도 효과적이었습니다. 감사!
— Thomas Gassmann

제 경우에는 Windows 10 상자가 파란색으로 표시되어 두 번 재부팅해야 했습니다 . 다른 웹 사이트 프로젝트는 잘 작동했으며 (다른 로컬 포트) 여기서 다른 답변은 작동하지 않았습니다. 프로젝트의 포트를 변경해도 문제가 해결되지 않았습니다. IIS Express 자체에 다른 구성이 있어야합니다.
— Granger 2019

F5를 사용하여 디버깅을 사용하여 VS 2019에서 프로젝트를 실행 한 다음 나중에 실패 할 때 Ctrl + F5를 사용하여 디버깅하지 않고 실행하려고 할 때마다 이런 일이 발생하는 것 같습니다. 다시 시작하면 문제가 해결되지만 처음에는 실제로 발생하지 않도록 할 수 있기를 바랍니다.
— pwhe23

28

나는 같은 문제가 있었다. @Kautsky Lozano가 위에서 언급했듯이 다른 응용 프로그램이 해당 포트를 사용하고 있습니다.

따라서 [Windows OS의 경우] 다음과 같습니다.

  • 리소스 모니터 열기 (작업 관리자-> 성능-> 리소스 모니터 열기)
  • 네트워크 탭을 클릭 하십시오.
  • 그리고 TCP 연결 에서 IIS Express가 사용하는 로컬 포트를 사용하는 응용 프로그램을 찾아서 닫습니다. (제 경우에는 firefox였습니다)

완벽하게 작동했습니다!
— Al Belmondo

12

Visual Studio 2012에서 2015로 솔루션을 업그레이드 한 후에도 동일한 문제가 발생했습니다. 여기에 와서 netstat다른 응용 프로그램이 동일한 포트를 사용하고 있지 않다는 것을 알기 위해 실행했습니다 . 내가 동일하게 매핑 포트와 같은 사이트했다 밝혀 applicationhost.config에서 Users/<username>/Documents/IISExpress/config와 applicationhost.config에서 .vs폴더 내 솔루션 내부. 업그레이드 직후에도 문제가 시작되지 않았습니다. 어느 날 아침 일관되게 실패하기 시작합니다. 몇 번의 재부팅으로도 문제가 해결되지 않는 것 같습니다.

내 문서에 저장된 사이트에서 충돌하는 사이트를 제거하고 Visual Studio를 다시 시작하면 문제가 해결되었습니다.


이것은 나를 도왔습니다. 솔루션 폴더 아래 applicationhost.config의 .vs\config폴더에 있습니다.
— 에릭 Oppedijk

6

netstat에 이미 포트를 사용중인 항목이 표시되지 않는 경우

netstat -ano | findstr <your port number>

포트가 제외되었을 수 있습니다.이 명령을 시도하여 범위가 다른 것에 의해 차단되었는지 확인하십시오.

netsh interface ipv4 show excludedportrange protocol=tcp

여러 포트에 대해 시작 포트에서 범위 차단을 해제 할 수 있습니다 (관리자에게 명령 프롬프트 필요).

netsh int ip delete excludedportrange protocol=tcp numberofports=<number of ports> startport=<start port>

저에게는 이러한 차단을 해제 할 수 없었고 "액세스가 거부되었습니다"라는 메시지가 표시되어 결국 내 사이트에 대한 다른 포트를 선택해야했습니다.



3

netstat가 충돌을 표시하지 않았지만 방금이 문제가 발생했습니다.

다음은 나를 위해 수정했습니다.

  1. Visual Studio 닫기
  2. 파일 탐색기 열기
  3. 문제가되는 프로젝트의 폴더로 이동
  4. obj 및 bin 폴더 삭제
  5. * .user 파일을 삭제 합니다 (선택 사항 일 수 있음).
  6. Visual Studio를 다시 시작하고 다시 시도하십시오.

3

Windows 10 및 / 또는 Visual Studio 16+를 업데이트 한 후 IISExpress가 더 이상 연결을 허용하지 않기 때문에 개발 웹 사이트를 등록하지 못하는 내부 버그 로 인해 발생할 수 있습니다 localhost.

문제를 해결하려면 바인딩을 다시 등록하기 만하면됩니다. 이를 수행하려면 관리 쉘에서 다음 명령을 실행하십시오.

netsh http add iplisten ipaddress=:: 

2

MVC 프로젝트를 업그레이드 할 때이 문제가 발생 했습니다 . 기존 .csproj 파일 위에 최신 MVC .csproj를 복사 한 다음 완전히 작동하는 프로젝트로 다시 작업했습니다. 내가 고려하지 못한 것은 이전 .csproj의 기존 포트 번호입니다. 새 프로젝트에는 새 포트 번호가 있지만 프로젝트 / 어셈블리 이름을 공유했습니다. 이는 IIS Express가 정신을 잃고이 예외를 던지기에 충분했습니다.

git에서 이전 포트 번호를 찾아서 프로젝트 설정에 포함하도록 IIS Express URL을 변경하는 것만으로도 충분했습니다.


2

명령 콘솔에 들어 가지 않고 가장 쉬운 첫 번째 단계는 모든 응용 프로그램 (VS 포함)을 종료 한 다음 VS를 자체적으로 시작하고 다시 시도하는 것입니다. 충돌을 일으키는 브라우저와 같은 다른 응용 프로그램이있을 수 있습니다. 제 경우에는 Chrome이 문제를 일으키고 모든 것을 종료하고 VS를 다시 시작할 때 해결되었습니다. Chrome을 다시 열었고 모든 것이 정상이었습니다.

위의 netstat 항목은 유용하지만 제게는 제가 제안한 것을 할 수없는 경우에만 그렇습니다.


2

모든 답변을 요약합니다. 두 가지 해결책이 있습니다. 둘 다 나를 위해 일했습니다. - 해결 방법 # 1 동일한 포트를 사용하는 앱을 종료합니다. - 솔루션 # 2 프로젝트에 다른 포트를 사용하도록 IIS Express를 구성합니다.

솔루션 # 1 (오류 메시지의 포트가 443이라고 가정) 명령 줄에서 실행합니다.

netstat -ao | findstr 443

반환합니다 : TCP 0.0.0.0:443 pe01:0 LISTENING 2904 마지막 숫자 (@ chris-schiffhauer 덕분에)는 죽일 PID입니다. 작업 관리자-> 프로세스-> [모든 사용자의 프로세스 표시]로 이동하여 PID = 2904로 프로세스를 종료합니다. 제 경우에는 VmWare 호스트였습니다.

해결 방법 # 2 (가정 메시지 : "MyProject.Website0"사이트에 대한 URL " http : // localhost : 433 / " 을 등록하지 못했습니다 ... ). notepad ++에서 다음 파일을 엽니 다. 다음을 C:\Users\MY_USER_NAME\Documents\IISExpress\config\applicationhost.config포함하는 줄을 찾습니다.

<site name="MyProject.Website0" id="...
...
            <bindings>
                <binding protocol="http" bindingInformation="*:80:localhost" />
                <binding protocol="https" bindingInformation="*:443:localhost" />
            </bindings>

433다른 것으로 변경 4330하거나 충돌하는 <binding.../>태그를 삭제하십시오 .


2

제 경우에는 다음을 수행하여 트릭을 수행했습니다.

  • .vs \\ config \ applicationhost.config에서 사이트 삭제
  • Documents \ IISExpress \ config \ applicationhost.config에서 사이트 삭제
  • .csproj에서 IISUrl을 삭제합니다.

Visual Studio를 다시 시작했을 때 프로젝트에 완전히 새로운 포트 번호를 할당하고 완벽하게 실행했습니다.


2

포트 번호가 일치하지 않습니다.

내 경우 문제는 내 솔루션 폴더 아래의 .vs 구성 파일에서 찾은 바인딩 태그에 있었으며 포트 번호가 일치하지 않았습니다. 바인딩은 다음과 같습니다.

<bindings>
     <binding protocol="http" bindingInformation=":16433:localhost" />
</bindings>

그리고 내 설정에서 URL을 다음과 같이 설정했습니다. http://localhost:1943/

그래서 내가 한 일은 바인딩 내부를 삭제하고 웹 앱을 실행 한 다음 다른 번호로 새 바인딩을 생성 한 다음 새로 생성 된 포트를 내 설정에 복사 한 다음 오류가 사라졌습니다.


이번에는 (이전 에이 문제가 있었고 여기에 다양한 답변에 제시된 많은 원인 중 하나였습니다) 이것이 원인이었습니다.
— speciesUnknown


1

나는 모든 것을 제거하여이 문제 수 수정했습니다 <site>에 </site>태그

Users/<username>/Documents/IISExpress/config/applicatiohost.config 파일

<sites>
  <site>
     .
     .   ===> remove this content including the <site> and </site> tags.
     .
  </site>
</sites>

1

이 같은 문제를 해결하기 위해 반나절을 낭비한 결과 결국 저에게 도움이되는 솔루션을 추가해야한다고 느꼈습니다.

TL; DRnetstat 문제가 사용되지 않음을 나타내는 경우 에도 완전히 다른 범위에서 다른 몇 가지를 시도하십시오.

이전에이 문제가 발생했지만 일반적으로 Visual Studio를 다시 시작하거나 포트를 변경 (1 씩 증가)하거나 재부팅하면 트릭이 발생합니다. 그러나 이번에는이 중 어느 것도 도움 netstat이되지 않았고 충돌하는 과정을 찾지 못했습니다. IIS와 Visual Studio를 다시 설치하고 방해가 될 수있는 다른 프로그램도 제거했습니다. IIS가 동일한 사이트의 여러 인스턴스를 시작하려는 것처럼 보였습니다.

결국 나는 실행하려고 netstat하지 않고 findstr. 활성 포트 목록을 시각적으로 스캔 한 결과 내가 시도한 포트가 나열되지 않았지만 비슷한 범위의 포트를 사용하는 몇 가지 프로세스가 있음을 알았습니다. 그래서 대신 무료 인 범위를 찾고 포트 번호를 선택했으며 이제 작동하는 것 같습니다.

왜 이것이 효과가 있었는지 설명 할 수있는 사람이 있는지 듣고 싶습니다.


이 솔루션은 나를 위해 해결했습니다.
— Rastographics

1

오늘 Visual Studio 2019에서이 문제에 직면했고 마침내 문제를 파악하기까지 3 시간을 보냈습니다. Visual Studio는 SSL 포트 번호를 추적하기 위해 2 개의 파일을 사용하므로 둘 다 수정해야하고 Visual Studio가 닫혀있는 동안 둘 다 수정해야합니다. 두 파일은 솔루션의 .vs \ ??? \ config 폴더에있는 applicationhost.config 파일입니다. 웹 프로젝트의 .csproj.user 폴더도 있습니다. 두 파일을 모두 편집하고 문제가되는 구성을 제거합니다. 어쩌면 두 파일을 모두 삭제할 수도 있습니다. 그런 다음 Visual Studio에서 앱을 다시 엽니 다. 행운을 빕니다!


솔루션에 웹 애플리케이션이 아닌 일반 구식 웹 사이트가 포함 된 경우 포트 번호도 솔루션 파일 .sln
— nuander

1
  1. Visual Studio 닫기
  2. ".vs"폴더 삭제
  3. 포트 "localhost : 8080"을 변경해보십시오.

그것은 나를 위해 일했습니다.


1

@Zoti의 지시에 따라 리소스 모니터를 사용하여 문제의 포트를 찾았습니다.

Outlook이 통신 채널에 대한 포트를 임의로 할당 한 것으로 나타났습니다. 이야기의 도덕성은 절대적으로 무엇이든 될 수 있습니다.


1

이 오류의 원인은 애플리케이션에 잘못된 포트 번호를 제공하기 때문입니다.

just use http ports for your application to run

8080 번호에 가까운 포트를 사용하십시오.

localhost : 8090

Visual-Studio에서 응용 프로그램의 포트를 변경하려면

goto project properties > web > Server > ProjectUrl


0

이미 다음을 시도했습니다.

  • 다시 시작된 Visual Studio
  • 내 특정 번호를 수신 할 수있는 사용 가능한 모든 포트를 확인하지만 항상 0 개의 결과를 반환합니다. 내 포트에서 수신하는 프로세스가 없습니다.
  • 나는 또한 이것을 사용해 보았지만 결과는 없습니다.

    netstat -aon | ": 80"찾기

  • 나는 또한 사용을 시도했지만 0 결과를 반환합니다.

    netstat -ao | findstr

그래서 내가 한 일은 " Microsoft.VsHub.Server.HttpHostx64.exe "를 삭제 한 다음 내 프로젝트가 성공적으로 시작되고 브라우저에서 실행됩니다. 오류가 수정되었습니다. 이유는 모르겠지만 작동합니다.

다음은 스크린 샷입니다.

여기에 이미지 설명 입력


0

나는 같은 문제가 있었지만 관리자 권한을 사용하여 다시 시작했을 때 해결되었습니다. (방금 다시 시작했을 수도 있습니다)


0

나는 오늘도 같은 문제가 있었고 인터넷에서 찾은 것은 아무것도 작동하지 않았습니다. 몇 년 동안 포트 2057을 사용해 왔지만 갑자기 더 이상 작동하지 않습니다. 2058과 같은 다른 낮은 숫자로 변경하면 동일한 오류 메시지가 표시되었지만 20057로 변경하면 모든 것이 다시 작동했습니다. 더 낮은 포트 번호가 처리되는 방식이 변경되었을 수 있습니다.


0

IIS Express가 Visual Studio에서 솔루션을 시작하지 못함

  • 작업 관리자로 이동
  • "애플리케이션 프레임 호스트"프로세스 검색
  • 이 프로세스 종료
  • 다시 실행하십시오
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.