[iis-7] 잘못된 요청-잘못된 호스트 이름 IIS7

포트 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/


답변

그래서 IIS 관리자의 웹 사이트로 이동하여 사이트 바인딩의 호스트 이름을 localhost에서 *로 변경하여이 문제를 해결했습니다. 즉시 작업을 시작했습니다.

IIS의 사이트 바인딩


답변

들어 Visual Studio 2017Visual 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>

구문 :
https://docs.microsoft.com/en-us/dotnet/api/microsoft.web.administration.binding.bindinginformation?view=iis-dotnet


답변

IPv6 주소에도 바인딩하는 것을 잊지 마십시오! localhost를 사용하여 127.0.0.1에 사이트를 추가하려고했는데 잘못된 요청 / 잘못된 호스트 이름 오류가 발생했습니다. localhost를 ping했을 때 IPv6가 활성화 되었기 때문에 :: 1로 해결되었으므로 문제를 해결하기 위해 추가 바인딩을 추가해야했습니다.

IIS 사이트 바인딩


답변

이것은 내 문제를 해결했습니다 (나쁜 영어에 대해 죄송합니다).

  1. 관리자 권한으로 cmd를 열고 명령을 실행합니다 (대괄호 제외).
    netsh http add urlacl url=http://[ip adress]:[port]/ user=everyone

  2. documents/iisexpress/config/applicationhost.config와 (숨겨진) 폴더에 루트 프로젝트 폴더에 : .vs/config/applicationhost.config당신은 “사이트”태그에 행을 추가 할 필요 :
    <binding protocol="http" bindingInformation="*:8080:192.xxx.xxx.xxx" />

  3. “인터넷 정보 서비스 (iis) 관리자”를 엽니 다
    (찾으려면 : 작업 표시 줄에서 검색에서 “창 기능 켜기 또는 끄기”를 쓰고 결과를 연 다음 “인터넷 정보 서비스”확인란을 선택하고 설치) :

    1. 왼쪽 화면에서 컴퓨터 이름-> 사이트-> 기본 웹 사이트 및
    2. 그런 다음 오른쪽 화면에서 “바인딩”을 클릭하십시오.
    3. 추가 버튼 클릭
    4. 필요한 것을 쓰고 “확인”을 누르십시오.
  4. “고급 보안 기능이있는 Windows 방화벽”을 엽니 다.

    1. 왼쪽 화면에서 “인바운드 규칙”을 누른 다음
    2. 오른쪽 화면에서 “새 규칙 …”을 누릅니다.
    3. 포트를 확인하고 다음을 누릅니다.
    4. TCP와 포트를 확인하고 다음을 누릅니다.
    5. “연결 허용”을 선택하고 다음을 누릅니다.
    6. 모든 확인란을 선택하고 다음을 누릅니다.
    7. 이름을 쓰고 마침을 누릅니다.
  5. 끝난.