왜 그리고 어떻게 고치는가? IIS Express“지정된 포트가 사용 중입니다.”


81

Visual Studio의 웹 애플리케이션에 임의의 포트 번호가 할당되어 있음을 알고 있습니다. 내 사무실 데스크탑에서 잘 작동합니다. 그러나 코드를 랩톱 (VisualStudio.com에서)으로 가져 와서 웹 앱을 실행하면. 나는 메시지를 받았다.

지정된 포트가 사용 중입니다.

포트 10360은 이미 다른 애플리케이션에서 사용 중입니다.

권장 사항

  1. 10360이 아닌 1024 이상의 포트로 전환 해보십시오.
  2. 포트 10360을 사용하는 애플리케이션을 중지하십시오.

Recommendation #1포트를 13333과 같은 다른 것으로 변경 하여 문제를 해결할 수 있습니다. 그러나 포트 10360에 무슨 일이 일어 났는지 매우 궁금합니다. 포트 10360을 사용하는 응용 프로그램을 어떻게 확인할 수 있습니까? 해당 응용 프로그램을 어떻게 중지 할 수 있습니까?


나는 같은 문제가 있었다. 내 문제는 동일한 솔루션에 여러 웹 프로젝트가 있다는 것입니다. 비록 그들이 달리고 있지 않더라도. 다른 프로젝트 중 하나는 동일한 포트를 사용했습니다. 주어진 프로젝트가 자체 포트를 사용하는지 확인하십시오.
Menace

답변:


52

이런 식으로 문제를 해결합니다 ...

파일 -> 열기 -> 웹 사이트 ... 여기에 이미지 설명 입력

그 선택 후 현지 IIS 에서 IIS 익스프레스 사이트 원치 않는 프로젝트를 제거합니다.

이 도움을 바랍니다.


4
이 일을 한 후에 다시 시작해야했습니다.
angrydust

4
어디 IIS 익스프레스 사이트에서 현지 IIS를 선택입니다
프라 카쉬 조시

2
이 단계는 내 문제를 해결하지 못했습니다. 단계를 따른 후 Visual Studio도 다시 시작했지만 아무런 이득이 없습니다.
user1451111

이 작업을 수행 한 후 솔루션을 실행하려고 할 때 "unable to connect to webserver iisexpress"오류가 발생합니다.
Enrico

37
  1. 솔루션에서 변경 (오른쪽 클릭)-> 속성 ->
  2. 클릭 가상 디렉터리 만들기 (프로젝트 URL 텍스트 상자의 앞을)

사용중인 포트를 수정하기위한 IIS Express 포트 변경


1
.sln 속성 페이지를 반복해서 변경하고 싶지 않습니다. 필자의 경우 Visual Studio에서 충돌을 일으키는 작업을 Visual Studio에서 수행하면 속성 페이지에 정의 된 포트 (위에 표시된대로)가 잠 깁니다.
bkwdesign

@bkwdesign, 내가 어쩌면 당신이 관리자 권한으로 실행하고 또한 가상 디렉터리를 만들거나 최신 버전으로 또는 표준에 마지막 단지 스위치에 당신의 VS를 업데이트해야, 충돌에 대해 아무 생각이 역할 IIS
이만

30

Windows 10에서 Visual Studio 2019를 실행하는 비슷한 문제가 발생했습니다. 다른 솔루션에서 효과가 있었던 일부 솔루션은 다음과 같은 것 같습니다.

  1. 애플리케이션 포트 번호 변경.
  2. Visual Studio에서 응용 프로그램이 시작될 때마다 자동으로 포트 번호를 할당하도록합니다.
  3. Visual Studio 다시 시작
  4. 컴퓨터를 다시 시작하십시오.

불행히도 이러한 솔루션 중 어느 것도 저에게 효과가 없었습니다. 다른 포트 번호를 할당해도 효과가 있었지만 응용 프로그램이 지정된 포트에서 실행되는 것이 중요했기 때문에 허용 가능한 솔루션이 아닙니다.

해결책

먼저 다음 명령을 실행했습니다.

netsh http add iplisten ipaddress=::

상승 된 명령 줄 프로세스에서. 이렇게하면 초기 오류가 해결되었습니다. 응용 프로그램을 실행하려고 할 때 더 이상 "포트 사용 중"오류가 발생하지 않고 대신 관리 권한이 필요하기 때문에 응용 프로그램이 포트에 바인딩 할 수 없다는 오류가 발생했습니다. (비쥬얼 스튜디오를 관리자로 실행했지만)

두 번째 오류는 포트 제외 범위에 포트를 추가하는 Hyper-V로 인해 발생했으며 내 응용 프로그램에서 사용하는 포트는 이러한 제외 범위 중 하나에 있습니다. 다음 명령을 실행하여 이러한 포트를 볼 수 있습니다.netsh interface ipv4 show excludedportrange protocol=tcp

이 두 번째 오류를 해결하려면 :

  1. Hyper-V 비활성화 : 제어판-> 프로그램 및 기능-> Windows 기능을 켜거나 끕니다. Hyper-V 선택 해제
  2. 컴퓨터를 다시 시작하십시오.
  3. 사용중인 포트를 포트 제외 범위에 추가하십시오. netsh int ipv4 add excludedportrange protocol=tcp startport=50403 numberofports=1 store=persistent
  4. Hyper-V 다시 활성화
  5. 컴퓨터를 다시 시작하십시오.

여기에서 모든 것이 완벽하게 작동했습니다.


와우, 저를 해결 한 유일한 방법입니다. Hyper-V를 비활성화하면 회사 빌드 덕분에 Windows 10 찡그린 BSOD가 생겼지 만 덕분 netsh interface ipv4 show excludedportrange protocol=tcp에 최소한 프로젝트를위한 새 포트를 선택할 수있었습니다.
SharpC

1
DUDE 이것은 정답 일뿐만 아니라 CMD 스크립트를 덤프하는 대신 실제로 설명했습니다 (대부분의 경우 괜찮습니다). 정말 감사합니다. 가능하다면 100 배를 찬성 할 것입니다.
Ryanman 2010

1
고맙습니다. 도커를 설치 한 후 이런 일이 발생했습니다.
MaxPower

1
이것은 나를 구했고, 나는 모든 일을 보냈고 매우 좌절했습니다. 이것은 나를 올바른 해결책으로 인도합니다. github.com/docker/for-win/issues/3171#issuecomment-459205576
muhammad kashif

Hyper-V로 인해이 문제가 발생했습니다. 감사합니다!
DylanSp

28

나는 똑같은 문제가 있었지만 netstat이나 resmon에서 프로세스가 나타나지 않았습니다.

문제를 해결 한 것은 열려있는 모든 브라우저 창을 닫는 것입니다.


1
와. 그것은 나에게도 효과적이었습니다. 아무도 이유를 설명 할 수 있습니까?
SJC

이것이 때때로 문제를 해결하는지 확인하면 (Firefox를 표준 브라우저로 사용) 절대적으로 의미가 없습니다.
Florian Winter

4
이것은 나를 위해 작동하지 않았습니다. 실행중인 앱이 없습니다. 사용중인 포트입니다. 실행중인 웹 페이지가 없습니다. 오류 일뿐입니다. 얼마나 고통 스러운가.
Mike

2
이것이 작동하는 이유는 웹 요청을 할 때 브라우저가 소스 포트 (일반적으로
49152-65535

이것은 나에게도 효과적이었습니다. 포트를 차단하는 앱이 사용할 이유가 없었기 때문에 말이되지 않았습니다.
James Westgate 19

28

이것은 1 년 넘게 나를 괴롭혔다!

나를 위해

  • IIS Express에서 실행중인 웹 사이트가 없습니다.
  • netstat -ano명령 줄에서 다음 을 실행하여 확인 된 포트를 사용하는 것은 없습니다 .

해결책은

netsh http add iplisten ipaddress=::

명령 줄에서.

행복한 날과 크레딧 : James Bryant! https://developercommunity.visualstudio.com/content/problem/110767/specified-port-is-in-use.html


어떤 아이디어는 그 명령이 무엇을 아무 생각이 일어나지 무엇인지,하지만 다른 솔루션이 여기에 실패한 경우 일
sksallaj

4
이 명령은 내 IIS를 망가 뜨 렸습니다. 조심해서 실행하세요. 내 로컬 IIS 사이트가 다시 작동하려면 netsh http delete iplisten ipaddress = ::를 실행해야했습니다.
Steve

내 IIS도 망가졌고, 실행하려면 관리자 권한이 필요하다고 말하기 시작했습니다. 되돌려 야했다.
jswetzen

이 후 관리자 권한 문제가있는 경우 @Philip Trenwith의 답변을 참조하십시오. Hyper-V 제외 포트 범위 일 수 있습니다.
IronSean

18

당신은를 찾고 있습니다 netstat.

관리 명령 셸을 열고 실행

netstat -aob

그리고 포트 10360을 찾으십시오. 포트를 연 실행 파일과 작업 관리자에서 조회 할 PID가 표시됩니다. (사실, netstat -?권한이없는 셸에서 먼저 실행하십시오. 특히 권한이있는 컨텍스트에서 이해하지 못하는 것을 맹목적으로 실행하는 것을 승인하지 않기 때문입니다.)

스위치의 기능은 다음과 같습니다.

-a 활성 포트뿐만 아니라 모든 연결 또는 열린 포트를 표시합니다. 원하는 포트는 활성 상태가 아닌 수신 대기 중일 수 있습니다.

-o연결 또는 포트의 소유 PID를 보여 주므로 작업 관리자의 프로세스 탭에서 프로세스를 찾을 수 있습니다. (작업 관리자에서 PID 열을 추가해야 할 수도 있습니다.보기-> 열 선택)

-b연결 또는 포트 열기와 관련된 바이너리를 보여줍니다. 이것은 높은 액세스 권한이 필요한 것입니다.


그거 멋지다. 이제 적어도 PID응용 프로그램이 있습니다. 감사.
Blaise

9
이 명령은 많은 노이즈를 생성하므로 문제가되는 응용 프로그램으로 바로 연결하려면 결과를 다음과 같이 findstr에 파이프하십시오.netstat -aob | findstr '10360'
kmkemp

1
다른 모든 답변은 저를 숲으로 보냈습니다.이 답변을 통해 실제로 소스를 찾고 문제를 해결할 수있었습니다.
Hugh Jeffner

또한, 당신은 단지보기 TCP 포트에 nestat -aob -p TCP를 사용할 수 있습니다
Shiroy

12
  1. VS 닫기
    1. 다시 시작-마우스 오른쪽 버튼을 클릭하고 관리자 권한으로 실행
    2. 프로젝트를 다시 실행하십시오.

다른 프로세스에서 포트를 사용한다고 가정하면 프로젝트> 속성> 디버그에서 포트를 변경 한 다음 관리자 작업으로 실행합니다
Noman Chali

꽤 슬프지만 효과가있었습니다. 다른 것은 작동하지 않았습니다. 문제의 포트에서 실행중인 프로세스가 없었기 때문에 오류는 완전히 잘못되었습니다. 이것은 Visual Studio 및 IISExpress의 버그 인 것으로 보입니다. 내가 그것을 닫고 다시 실행해야하는 이유가 말이되지 않습니다.
Mike

이 단계는 내 문제를 해결하지 못했습니다.
user1451111

한 번의 관리자 실행이 재부팅, 포트 변경, 프로세스 종료, netstat hunts, iplisten 변경 후 소요 된 작업이라는 사실에 만족하고 당황했습니다. 사용자로 실행할 때 계속 작동합니다.
Richard

10

나를 위해 일한 간단한 솔루션 : (다른 사람의 답변 조합에 대한 크레딧)

**My System Info:**
Windows 10 build : 1809
IIS Version      : 10.0.17763.1
Hyper-V          : Enabled
Docker           : Installed - 2.3.0.2 (45183)
  • CMD에서 차단 된 포트 범위 확인 (관리자)

    >> netsh interface ipv4 show excludedportrange protocol=tcp
    
    (Sample output):
    Protocol tcp Port Exclusion Ranges
    Start Port    End Port
    ----------    --------
    49696       49795         (SEE HERE, 49796 to 49895 is not blocked)
    49896       49995
    ... list goes on ...
    
  • Visual Studio를 열고> 프로젝트> 속성> 웹> 서버> 프로젝트 URL로 이동합니다.

  • 차단되지 않은 포트를 사용하십시오.

    (Sample port):
    http://localhost:49796/
    
  • Visual Studio 다시 시작 (필요한 경우)

  • 커피를 마시고 사랑을 나누십시오. (필수) :)


3
굉장합니다! 감사합니다
Grandizer

특정 범위가 차단되는 이유를 아십니까?
J Santosh

4
  1. .sln 파일이있는 경우 삭제하십시오.
  2. C : \ Users \ NN \ Documents \ IISExpress \ config \ applicationhost.config 파일을 엽니 다.
  3. configuration / system.applicationHost / sites에서 문제가있는 사이트를 찾아 전체 사이트 섹션을 삭제합니다.
  4. Visual Studio에서 "Open Web Site .."를 선택하면 프로젝트에 임의의 새 포트가 제공됩니다.

이것은 여전히 ​​최상의 솔루션입니다.
Vincent

3

netstat에 아무것도 표시되지 않으면 재부팅을 시도하십시오.

나에게는 내 포트의 netstat에 아무것도 나타나지 않았습니다. @Clangon과 @JT Taylor가 제안한대로 Chrome 브라우저 창을 닫으려고했지만 아무 소용이 없었습니다.

그러나 결국 시스템 재부팅이 작동했기 때문에 다른 무언가가 비밀리에 포트를 열어두고 있다고 가정 할 수 있습니다. 또는 Chrome이 종료 된 후 포트가 해제 될 때까지 기다릴 준비가 된 것보다 더 오래 걸렸습니다.


정확히 내 시나리오!
user1451111


3

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>

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

내 원래 솔루션 : 작동 한 유일한 방법은 솔루션 폴더에서 .vs 폴더를 삭제하는 것입니다. (그 이후로 너무 많은 설정을 잃지 않도록 대신 .vs / config / applicationhost.config를 삭제할 수 있음을 발견했습니다).


이 솔루션이 잘 작동 할 것이라고 생각했지만 여전히 오류가 발생합니다. 나를 위해 문제의 포트 (3333)는 netstat -a에 전혀 나타나지 않습니다.
Chris Walsh

1
@ChrisWalsh이 문제는 나를 위해 다시 발생했으며 추가 정보를 찾았으므로 내 대답을 업데이트했습니다. 당신은 나와 같은 배에있을 수 있습니다. 항구는 사용 중이 아니었지만 다른 것에 의해 예약 (제외)되었습니다.
John Leonard

2

작업 관리자를 열고 'IIS Express 시스템 트레이'및 'IIS Express 작업자 프로세스'의 모든 프로세스를 닫고 프로젝트를 다시 실행하십시오.

작업 관리자 프로세스 세부 정보


2

비주얼 스튜디오 2015

  • Visual Studio에서 연 모든 파일을 닫습니다.
  • 그런 다음 응용 프로그램을 닫고 Visual Studio를 종료합니다.
  • Visual Studio를 열면 성공적으로 실행됩니다.

이게 도움이 되길 바란다.


2
이것은 포트와 관련이 없습니다. 질문을 읽으십시오.
UmarZaii

나는 이미 질문을 읽은 다음 나에게도 일어난 일이라고 대답하고 게시물에 쓴 것과 똑같은 일을했고 그것은 나를 위해 작동합니다.
싱 saurav

그럼 괜찮은 것 같아요.
UmarZaii

이것은 나를 위해 그것을 고쳤습니다. Visual Studio를 다시 시작하면 많은 문제가 해결됩니다.
CapnChaos

이것은 나를 위해 그것을 고쳤습니다. 나는 UmarZaii가 무엇에 대해 불평하는지 전혀 모른다.
Artexias

2

저에게 "지정된 포트가 사용 중입니다"오류는 일반적으로 "인터넷 연결 공유 ( ICS )"(SharedAccess) 및 "월드 와이드 웹 게시 서비스"( W3SVC ) 서비스 를 중지 하여 해결됩니다 (실제로는 문제가 해결되었습니다 ).

프로젝트 / ISS Express가 시작된 후 중지 된 서비스는 문제없이 다시 시작할 수 있습니다.

오류가 발생할 때마다 포트 (50000 범위)가 확실히 사용되지 않습니다 (netstat 및 tcpview로 확인).

Microsoft가 HyperV 및 "일반"IIS 서비스와 함께 Visual Studio / IIS Express의 통합 테스트를 수행했거나 VS / IIS Express에 사용할 포트 범위 (및 피해야 할 포트)에 대한 지침을 제공하면 좋을 것입니다.


이것은 내 문제였으며 ICS가 netstat 또는 Resource Monitor에 표시되지 않기 때문에 추적하는 데 영원히 걸렸습니다. 감사! 바보 $ % @ * &&!) $ *!
James

게시 해 주셔서 감사합니다. 이것은 나를 위해 일한 유일한 것입니다. 나는 웹 앱 개발을 위해 일한 다음 USB를 통해 내 컴퓨터에 내 Android 전화 인터넷 연결을 공유하기로 선택한 사이에 발생했다고 생각합니다. 그리고 위의 <netsh http add iplisten ipaddress = ::> 아이디어 (일을 깨고 삭제해야 함)에서 예약 된 범위를 삭제하려고 시도하는 것 (관리자 로서도 액세스가 거부 됨)까지 모든 것을 시도했습니다. 다시 시작, 웹 브라우저 닫기 등은 시도 할 때까지 작동하지 않았으므로 다시 한 번 감사드립니다.
Alister Smith

1

나에게 Google Chrome 브라우저는 포트를 사용하는 프로세스였습니다. Chrome을 닫은 후에도 프로세스가 계속 유지되는 것을 발견했습니다 (데스크톱 알림을받을 수 있도록 Chrome이 "백그라운드에서 실행"되도록 허용). 작업 관리자로 이동하여 Chrome 브라우저 프로세스를 종료 한 다음 웹 애플리케이션을 시작했습니다. 마치 매력처럼 작동했습니다.


1

나를 위해 모든 응용 프로그램을 닫고 컴퓨터를 다시 시작하십시오.

창이 시작되면 먼저 Visual Studio를 연 다음 브라우저를 열고 실행 (F5)을 클릭합니다.

이제 작동합니다. 이유를 모르겠습니다.


1

예를 들어 메모장 ++로 csproj를 열고 DevelopmentServerPort로 스크롤합니다. rekommended (예 : 22312)와 같이 1024 이상인 한 다른 것으로 변경하십시오. 또한 IISUrl을 http : // localhost : 22312 /로 변경하십시오 . 변경 사항을 저장하고 프로젝트를 다시 시작하십시오.


1

제 경우에는 지정된 포트를 사용하는 애플리케이션이 없었고 Visual Studio의 상승 된 실행도 도움이되지 않았습니다.

나를 위해 일한 것은 IIS Express를 다시 설치하고 컴퓨터를 다시 시작하는 것입니다.


이것은 VS 2017이있는 Windows 10 1809에서 저에게 효과가 있었던 유일한 옵션이었습니다.
Holistic Developer


1

관리 명령 프롬프트에서 다음을 실행하여이 매개 변수를 구성해야합니다.

netsh http add iplisten ipaddress = ::


0

나를 위해 netstat는 포트를 열어 두는 Fiddler가 실행 중임을 보여주기 위해 트릭을 수행했습니다.


1
좀 더 설명해 주시겠습니까?
Dieter Meemken

0

사용중인 포트와 같은 오류가 발생하면 작업 표시 줄 하단에있는 알림을 클릭 한 다음 iiss 아이콘을 선택하고 마우스 오른쪽 버튼을 클릭 한 다음 종료를 클릭합니다.


0

오류 메시지는 어떤 응용 프로그램이 이미 포트를 사용하고 있는지 알려줍니다. 제 경우에는 explorer.exe이므로 작업 관리자에서 탐색기를 다시 시작하는 경우였습니다.


0

나는 같은 오류가 나타났습니다. IIS에서 웹 서비스를 응용 프로그램으로 설정했고 다음과 같이 수정했습니다.

내 솔루션에서 내 WebService 프로젝트를 마우스 오른쪽 버튼으로 클릭> 속성> 웹> '서버'에서 IIS Express에서 로컬 IIS로 변경합니다 (원하는 가상 디렉터리가 자동으로 생성됨).


0

포트 xxxx가 이미 사용되고있는 경우 항상 오류에 대해 설명 된 PID (프로세스 ID)가 있습니다. 응용 프로그램을 실행중인 컴퓨터의 작업 관리자로 이동하여 세부 정보를 클릭하면 다른 응용 프로그램이 무엇인지 식별 ​​할 수 있습니다. 그런 다음 해당 프로세스를 종료할지 여부를 결정할 수 있습니다.


0

여기에 추가하기 위해 내 컴퓨터 중 하나에 대해 전체 IIS 기능을 설정했으며 이것이 간헐적으로 발생하는 것 같습니다.

또한 잠시 후 사이트를 바인딩하기 위해 관리자 권한이 필요하다는 불만이 제기되었습니다. 어떻게 든 전체 IIS 구성을보고 있다고 가정합니다 (사용자 별 파일이 아니므로 관리자가 필요함).

막혀 있고 다른 것이 도움이되지 않는 경우 (다른 포트만 선택하고 싶지 않은 경우) 해당 포트가 있으면 제거했는지 확인하십시오.


0

FWIW, 나는 이러한 옵션을 많이 시도했지만 아무데도 얻지 못했습니다. 그런 다음 문제가 시작되기 직전에 VMWare Player를 설치했음을 깨달았습니다. 제거했는데이 오류가 사라졌습니다.

공존 할 수있는 방법이있을 것 같지만 Player가 꼭 필요하지 않아 그냥 제거했습니다. 모든 종류의 작업을 시도했지만 작동하지 않는 경우 최근에 설치 한 프로그램 (특히 네트워크 어댑터를 다루는 프로그램)을 살펴보고 어디로 든 연결되는지 확인하십시오.


0

Visual Studio 2017에서 프로젝트 / 속성을 선택한 다음 웹 옵션을 선택합니다. 기본 프로젝트 URL 옆에있는 IIS 섹션에서 가상 디렉터리 만들기를 클릭합니다. 이것은 나를 위해 문제를 해결했습니다. 제 경우에는 기본 프로젝트 가상 디렉토리가 디버깅 세션 후 어떤 방식 으로든 손상되었다고 생각합니다.


0

이 문제를 해결하려면 아래 단계를 따르십시오.

  1. 관리자 모드로 실행되는 CMD 열기
  2. 그런 다음 netsh http add iplisten ipaddress = : 명령을 실행합니다.

  3. 프로젝트 실행 후

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.