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 와 같은 것을 사용 하여 비공개 로컬 호스트 바운드 포트를 공개적으로 열린 포트 에 터널링 하는 작은 루프백 프록시 역할을 할 수 있습니다 .
예를 들면
- IISExpress 는 localhost : 8080에 로컬로 바인딩됩니다 .
- PortMapper 포트 9090 은 트래픽을 localhost : 8080 으로 릴레이하도록 구성됩니다 .
사실상 포트 9090 ( PortMapper에 의해 열림 )의 모든 연결은 localhost : 8080 으로 터널링됩니다 . 따라서 때때로 고통이 될 수있는 모든 netsh 넌센스를 우회합니다.
다음은 내 구성입니다.
이 프록시 방법을 사용할 때의 이점은 로컬 개발 상자에서 열린 IISExpress 포트를 영구적으로 노출하지 않는다는 것 입니다.
드물게 회의를 위해 공개적으로 항구를 열고 싶을 때가 있습니다. 그러나 대부분의 경우 포트는 닫히고 localhost에서만 액세스 할 수 있습니다. 매번 라우터에서 방화벽 규칙을 수정하는 것은 어렵습니다. 설정 방법은 다음과 같습니다.
- 내 라우터 방화벽이 9090 포트를 PortMapper로 전달합니다.
- PortMapper 는 PortMapper 가 실행중인 경우에만 트래픽을 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
'code' 카테고리의 다른 글
클로저로 숫자를 나눌 때 분수를 얻습니다. 소수는 어떻게 얻습니까? (0) | 2020.11.04 |
---|---|
예외를 잡았습니다 !! (0) | 2020.11.04 |
.ToString ()이 null 값이있는 nullable int에서 제대로 작동 할 때 null 문자열의 .ToString ()이 null 오류를 발생시키는 이유는 무엇입니까? (0) | 2020.11.04 |
Python 데몬 및 systemd 서비스 (0) | 2020.11.04 |
GAITrackedViewController 및 UITableViewController (0) | 2020.11.04 |