[C#] IIS Express에서 외부 요청을 활성화하는 방법은 무엇입니까?

IIS Express에서 원격 요청을 어떻게 활성화 할 수 있습니까? 스캇 거 트리 (Scott Guthrie)는 이것이 가능하다고 했지만 어떻게 말하지 않았다.



답변

IIS 팀 사이트 에 IIS Express에서 원격 연결활성화 하는 방법을 설명하는 블로그 게시물이 있습니다 . 다음은 해당 게시물의 관련 부분을 요약 한 것입니다.

Vista 및 Win7의 경우 관리 프롬프트에서 다음 명령을 실행하십시오.

netsh http add urlacl url=http://vaidesg:8080/ user=everyone

XP의 경우 먼저 Windows XP 서비스 팩 2 지원 도구를 설치하십시오. 그런 다음 관리 프롬프트에서 다음 명령을 실행하십시오.

httpcfg set urlacl /u http://vaidesg1:8080/ /a D:(A;;GX;;;WD)


답변

변경해야 할 세 가지가 있습니다.

  1. 모든 IP 주소 및 호스트 이름에 바인딩하도록 IIS Express 자체에 지시하십시오. 당신에 .config파일. 일반적으로
    • VS 2015 :
      $(solutionDir)\.vs\config\applicationhost.config
    • <VS 2015 : %userprofile%\My Documents\IISExpress\config\applicationhost.config

사이트의 바인딩 요소를 찾아서 추가하십시오.

    <binding protocol="http" bindingInformation="*:8080:*" />
  1. ‘http.sys’라는 Windows 비트를 설정하십시오. 관리자로서 다음 명령을 실행하십시오.
    netsh http add urlacl url=http://*:8080/ user=everyone

everyoneWindows 그룹은 어디에 있습니까 ? “Tout le monde”와 같이 공백이있는 그룹에는 큰 따옴표를 사용하십시오.

  1. Windows 방화벽을 통한 IIS Express를 허용하십시오.

    고급 보안 / 인바운드 규칙 / 새 규칙을 사용하여 시작 / Windows 방화벽 …

    프로그램 %ProgramFiles%\IIS Express\iisexpress.exe
    또는 포트 8080 TCP

이제 시작 iisexpress.exe하면 다음과 같은 메시지가 나타납니다

“hello world”애플리케이션 “/”에 대한 URL “http : // * : 8080 /”을 성공적으로 등록했습니다


답변

몇 달 전에이 워크 플로를 시도하는 동안 동일한 문제가 발생하는 것을 기억합니다.

어떤 내가 이런 종류의 시나리오를 위해 특별히 간단한 프록시 유틸리티를 쓴 이유 : https://github.com/icflorescu/iisexpress-proxy .

IIS Express 프록시를 사용하면 “netsh http add urlacl url = vaidesg : 8080 / user = everyone”또는 “applicationhost.config”를 엉망으로 만들 필요가 없습니다.

명령 프롬프트에서 이것을 발행하십시오.

iisexpress-proxy 8080 to 3000

… 그리고 원격 장치가 http : // vaidesg : 3000 을 가리킬 수 있습니다 .

대부분의 경우 단순할수록 좋습니다.


답변

iisexpress-proxy를 찾을 때까지 아무것도 작동하지 않았습니다 .

관리자 권한으로 명령 프롬프트를 연 다음 실행

npm install -g iisexpress-proxy

그때

iisexpress-proxy 51123 to 81

Visual Studio 프로젝트가 localhost : 51123에서 열리고 외부 IP 주소 xxxx : 81에서 액세스한다고 가정합니다.

편집 : 나는 현재 사용하고 있습니다 ngrok


답변

이에 대한 주석으로 :

netsh http add urlacl url=http://vaidesg:8080/ user=everyone

영어 버전의 Windows에서만 작동합니다. 지역화 된 버전을 사용하는 경우 “모두”를 다른 것으로 바꿔야합니다. 예를 들면 다음과 같습니다.

  • 네덜란드어 버전을 사용할 때 “Iedereen”
  • 독일어 버전을 사용할 때 “Jeder”
  • 헝가리어 버전 사용시 “민 덴키”

그렇지 않으면 오류가 발생합니다 (SDDL 작성 실패, 오류 : 1332).


답변

좋은 자원은 개발 시간이 IISExpress에 쉽게에서 SSL과 함께 작업 스콧 Hanselman은에 의해.

다음은 포트 80을 통해 외부에서 IIS Express를 제공하기 위한 섹션입니다.


답변

Visual Studio를 사용하는 경우 다음 단계에 따라 IP-Adress를 통한 IIS-Express에 액세스하십시오.

  1. ipconfigWindows 명령 줄에서 호스트 IP 주소 얻기
  2. 이동

    $(SolutionDir)\.vs\config\applicationHost.config
  3. 찾기

    <site name="WebApplication3" id="2">
       <application path="/" applicationPool="Clr4IntegratedAppPool">
          <virtualDirectory path="/" physicalPath="C:\Users\user.name\Source\Repos\protoype-one\WebApplication3" />
       </application>
       <bindings>
         <binding protocol="http" bindingInformation="*:62549:localhost" />
       </bindings>
    </site>
  4. 추가 :
    <binding protocol="http" bindingInformation="*:62549:192.168.178.108"/>
    IP 주소로

  5. 관리자 권한으로 Visual Studio를 실행하면 모든 것이 작동합니다.
  6. 원격에서 연결하려고하면 방화벽 문제가 있는지 확인하십시오.