포트 8080에서 웹 앱을 사용하려고하면 다음 오류가 발생합니다.
잘못된 요청-잘못된 호스트 이름
HTTP 오류 400. 요청 호스트 이름이 잘못되었습니다.
이 문제를 어디에서 진단해야할지 모르겠습니다.
답변:
바인딩이 IIS인지 확인 했습니까? (inetmgr.exe) 8080에서 모든 호스트 이름을 허용하도록 등록되지 않았을 수 있습니다.
예를 들어 mysite.com:8080에 대해 설정하고 localhost : 8080에 도달하면 IIS는 요청을 받지만 일치 할 호스트 이름 바인딩이 없으므로 거부합니다.
그 외에 서버에서 IIS 로그 (C : \ inetpub \ logs \ wmsvc #)를 확인하고 요청이 표시되는지 확인해야합니다. 그러면 클라이언트 또는 서버 자체에 문제가 있는지 알 수 있습니다.
FWIW, 호스트 이름 / ip에 대한 요청 만 허용하려면 다음과 같이 바인딩을 설정할 수 있습니다.
<binding protocol="http" bindingInformation="*:80:*" />
이 바인딩을 사용하여 IE6으로 VM을로드 한 다음 내 애플리케이션을 디버깅 할 수 있습니다.
편집 : IIS Express를 사용하여 디버깅하는 동안이 옵션 구성 파일의 기본 위치는 다음과 같습니다.
C:\Users\{User}\Documents\IISExpress\config\applicationhost.config
Microsoft 의이 페이지에서는 로컬 네트워크의 다른 컴퓨터에서 IIS Server Express에 대한 액세스를 설정하는 방법을 설명합니다.
간단히 말해서 :
1) 관리자 권한이있는 명령 프롬프트에서 :
netsh http add urlacl url=http://[your ip address]:8181/ user=everyone
2) 고급 보안이 포함 된 Windows 방화벽에서 포트 8181에 대한 새 인바운드 규칙을 만들어 외부 연결을 허용합니다.
3) applicationhost.config에서 프로젝트의 노드에 다음을 추가하십시오.
<binding protocol="http" bindingInformation="*:8181:[your ip address]" />
추가하지 마십시오 (다른 답변에서 제안한대로) :
<binding protocol="http" bindingInformation="*:8181:*" />
위의 와일드 카드 바인딩은 http://192.168.1.6:8181/
netsh http delete urlacl url=http://[your ip address]:8181/
들어 Visual Studio 2017
와 Visual Studio 2015
, IIS Express
설정이 숨겨져에 저장되어있는 .vs
디렉토리 경로가이 같은 것입니다 .vs\config\applicationhost.config
, 의지 작업을 아래와 같이 바인딩 추가
<bindings>
<binding protocol="http" bindingInformation="*:8802:localhost" />
<binding protocol="http" bindingInformation="*:8802:127.0.0.1" />
</bindings>
<bindings> <binding protocol="http" bindingInformation="localhost:8802:*" /> <binding protocol="http" bindingInformation="127.0.0.1:8802:*"/> </bindings>
이것은 내 문제를 해결했습니다 (나쁜 영어에 대해 죄송합니다).
관리자 권한으로 cmd를 열고 명령을 실행합니다 (대괄호 제외).
netsh http add urlacl url=http://[ip adress]:[port]/ user=everyone
에 documents/iisexpress/config/applicationhost.config
와 (숨겨진) 폴더에 루트 프로젝트 폴더에 : .vs/config/applicationhost.config
당신은 "사이트"태그에 행을 추가 할 필요 :
<binding protocol="http" bindingInformation="*:8080:192.xxx.xxx.xxx" />
"인터넷 정보 서비스 (iis) 관리자"를 엽니 다
(찾으려면 : 작업 표시 줄에서 검색에서 "창 기능 켜기 또는 끄기"를 쓰고 결과를 연 다음 "인터넷 정보 서비스"확인란을 선택하고 설치) :
"고급 보안 기능이있는 Windows 방화벽"을 엽니 다.
끝난.
이것이 당신의 문제인지 확실하지 않지만 그의 컴퓨터에서 그의 웹 응용 프로그램에 액세스하려고 시도 하고이 문제가있는 사람에게는 다음과 같습니다.
외부 IP 주소가 아닌 127.0.0.1
(일명 localhost
)에 연결하고 있는지 확인하십시오 .
귀하의 URL은 무언가 같이해야 http://localhost:8181/
또는 http://127.0.0.1:8181
및 없습니다 http://YourExternalIPaddress:8181/
.
외부 IP 주소에 연결하면 마치 낯선 사람 (또는 해커) 인 것처럼 인터넷에서 연결됩니다.
그러나 로컬 호스트에 연결할 때 로컬로 직접 연결하고 블록은 분명히 필요하지 않습니다 (& 모두 피함).
localhost
( 127.0.0.1
)를 가리키는 것 입니다. 내가 말하는 것은 외부에서 볼 수있는 IP가 아니라 그것에 연결하는 것입니다. localhost에 의존하지 않고 동의어로만 사용됩니다. 나는 이것을 더 명확하게하기 위해 내 대답을 편집 할 것입니다.