"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/configapplicationhost.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. objbin 폴더 삭제
  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.