code

IIS Express를 사용하여 웹 사이트 호스팅 (임시)

codestyles 2020. 11. 4. 08:00
반응형

IIS Express를 사용하여 웹 사이트 호스팅 (임시)


개발을 위해 IIS Express에서 호스팅되는 웹 사이트 (MVC3)가 있습니다. (저는 Cassini Devserver의 버그를 만났고 업그레이드해야했습니다 ...) 이제 제 로컬 네트워크 (라우터 뒤)에있는 다른 컴퓨터가 제 컴퓨터에서 호스팅 된 사이트를 볼 수 있도록 할 수 있습니까? (예 : http : //my.local.ip : port 를 나와 같은 LAN의 브라우저에 쓰면 페이지가로드됩니까?)


기본적으로 IIS Express는 localhost 요청 만 처리합니다. 외부 요청을 처리하려면 applicationhost.config파일 (에 있음 %userprofile%\documents\iisexpress\config\)을 편집 localhost하고 '*'또는 컴퓨터 이름으로 변경 하십시오. (비 localhost 바인딩의 경우 관리자로 실행하거나 URL acl을 관리자로 설정 한 다음 iisexpress를 비 관리자로 실행해야합니다.)


또는 AnalogX의 PortMapper 와 같은 것을 사용 하여 비공개 로컬 호스트 바운드 포트를 공개적으로 열린 포트 터널링 하는 작은 루프백 프록시 역할을 할 수 있습니다 .

예를 들면

  • IISExpresslocalhost : 8080에 로컬로 바인딩됩니다 .
  • PortMapper 포트 9090 은 트래픽을 localhost : 8080 으로 릴레이하도록 구성됩니다 .

사실상 포트 9090 ( PortMapper에 의해 열림 )의 모든 연결은 localhost : 8080 으로 터널링됩니다 . 따라서 때때로 고통이 될 수있는 모든 netsh 넌센스를 우회합니다.

다음은 내 구성입니다.

PortMapper 구성

이 프록시 방법을 사용할 때의 이점은 로컬 개발 상자에서 열린 IISExpress 포트를 영구적으로 노출하지 않는다는 것 입니다.

드물게 회의를 위해 공개적으로 항구를 열고 싶을 때가 있습니다. 그러나 대부분의 경우 포트는 닫히고 localhost에서만 액세스 할 수 있습니다. 매번 라우터에서 방화벽 규칙을 수정하는 것은 어렵습니다. 설정 방법은 다음과 같습니다.

  • 내 라우터 방화벽이 9090 포트를 PortMapper로 전달합니다.
  • PortMapperPortMapper 가 실행중인 경우에만 트래픽을 IISExpress ( 8080에서 수신) 로 계속 프록시합니다 .

노트

변경 사항을 적용하려면 모든 PortMapper을 닫아야 합니다.

노트 2

다른 사람들이 설명했듯이 응용 프로그램에 대한 IISExpress 바인딩 을 조정해야 할 수도 있습니다 .

 My Documents\IISExpress\applicationhost.config
 project\.vs\config\applicationhost.config

다음과 같이 :

<bindings>
  <!-- bindingInformaiton format:
          IPToBindTo:Port:DNSHostName -->

  <!--OLD:
  <binding protocol="http" bindingInformation="*:8080:localhost"/>-->

  <!--Change '*' to 127.0.0.1 and remove 'localhost' right of the port number
      to avoid invalid DNS hostname errors -->
  <binding protocol="http" bindingInformation="127.0.0.1:8080:" />

</bindings>

이 작업을 성공적으로 수행하는 데 세 단계가 있다고 생각합니다.

1) 다른 시스템이 개발 시스템의 IP 주소를 조회 할 수 있도록 dns 항목 또는 호스트 항목을 추가합니다.

2) % userprofile / documents / IISExpress / Config의 applicationhost.config에 바인딩을 추가하십시오.

<site name="MobileDashboard(2)" id="7">
                <bindings>
                    ...
                    <binding protocol="http" bindingInformation="*:yourport#:yourmachinendnsname" />
                </bindings>
            </site>

3) 여기있는 명령을 실행하여 들어오는 요청을 허용합니다.

netsh http add urlacl url=http://yourmachinendnsname:yourport#/ user=everyone

이 스레드의 대답은 훌륭합니다. 방화벽 예외는 제외됩니다.

netsh advfirewall firewall add rule name="IIS Express (non-SSL)" action=allow protocol=TCP dir=in localport=8000

netsh advfirewall firewall add rule name="IIS Express (SSL)" action=allow protocol=TCP dir=in localport=44300

http://blogs.iis.net/vaidyg/archive/2010/07/29/serving-external-traffic-with-webmatrix-beta.aspx의 의견에서 출처


http://blogs.microsoft.co.il/blogs/shair/archive/2008/12/15/how-to-use-fiddler-on-localhost.aspx 에서 Fiddler의 사용자 지정 규칙 트릭이 결국 저에게 효과적이었습니다.


예, 로컬 lan 사용을 위해 iis express를 사용하여 많은 사이트를 구성 할 수 있습니다. 여기 에서 Lan IIS Express에서 로컬 사이트에 액세스 하는 방법을 설명하는 링크가 있습니다.

참고 URL : https://stackoverflow.com/questions/5235826/using-iis-express-to-host-a-website-temporarily

반응형