티스토리 뷰
반응형
모바일 앱의 백엔드 서비스를 ASP.NET 프로젝트로 개발한다면, 안드로이드(혹은 아이폰)에서 ASP.NET 프로젝트(IIS Express)에 접속할 수 있어야 합니다. 그래야 디버깅을 손쉽게 진행할 수 있지요. 하지만 기본적으로 IIS Express는 외부에서의 접속을 차단하기 때문에, 몇가지 설정이 필요합니다. 이 포스트에서는 IIS Express를 외부에 노출시키는 방법에 대해 설명합니다.
- 먼저 IIS Express가 실행되는 PC의 IP를 확인해주세요. 여기서는 "192.168.0.143"이라고 가정합니다.
- 방화벽에 예외를 추가해주세요. 만약 ASP.NET 프로젝트에서 사용하는 포트번호가 "49393"이라면 다음과 같은 명령어로 예외를 추가할 수 있습니다.
netsh advfirewall firewall add rule name="MyWebSite" dir=in protocol=tcp localport=49393 profile=private remoteip=localsubnet action=allow
- IIS Express에 원격연결 설정을 추가해야 합니다. [솔루션 폴더/.vs/config/applicationhost.config] 파일을 텍스트 편집기로 여세요. 그리고 프로젝트에 해당하는 site 엘리먼트를 찾으세요. 예를들어 프로젝트 명이 MyWebSite라면 다음과 같은 site 엘리먼트를 찾을 수 있습니다.
<site name="MyWebSite" id="2"> <application path="/" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="C:\Users\user\MyWebSite\MyWebSite" /> </application> <bindings> <binding protocol="http" bindingInformation="*:49393:localhost" /> </bindings> </site>
- 외부에서 접근할 수 있도록 binding 엘리먼트를 추가해야합니다. bindingInformation의 구성은 [허용할IP주소]:[포트번호]:[서버의 호스트명]입니다. 2개의 binding 엘리먼트를 추가하게 되는데 첫번째는 IIS Express가 실행되고 있는 PC의 IP주소, 두번째는 127.0.0.1 주소를 사용합니다.
<binding protocol="http" bindingInformation="*:49393:192.168.1.143" /> <binding protocol="http" bindingInformation="*:49393:127.0.0.1" />
- 최종적으로 완성된 site 엘리먼트의 모습은 다음과 같습니다. applicationhost.config 파일을 저장해주세요.
<site name="MyWebSite" id="2"> <application path="/" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="C:\Users\user\MyWebSite\MyWebSite" /> </application> <bindings> <binding protocol="http" bindingInformation="*:49393:localhost" /> <binding protocol="http" bindingInformation="*:49393:192.168.1.143" /> <binding protocol="http" bindingInformation="*:49393:127.0.0.1" /> </bindings> </site>
- 이제 VisualStudio를 재시작해주세요. 반드시 관리자 권한으로 시작해야합니다. 보안상의 이유로 IIS Express는 외부의 접속을 차단합니다. 하지만 Visual Studio를 관리자권한으로 실행하면 외부의 접속을 허용할 수 있습니다.
- Visual Studio를 관리자 모드로 실행했다면, 웹사이트를 실행해주세요. 실행이 정상적으로 이루어지면 IIS Express가 다음과 같이 나타나게 됩니다.
- 이제 안드로이드(혹은 아이폰)에서 브라우저를 실행하고 접속을 시도해보세요.
다시 한번, VisualStudio를 관리자 권한으로 실행해야 한다는 점에 주의해주세요.
References
- Configure remote access to IIS Express (Microsoft): https://docs.microsoft.com/en-us/xamarin/xamarin-forms/data-cloud/web-services/wcf#configure-remote-access-to-iis-express
- Debugging .NET Core API on Android Device (Matt Ruma): http://www.mattruma.com/debugging-net-core-api-on-android-device/
'Mobile' 카테고리의 다른 글
[Xamarin] iOS, Android 파일명 (0) | 2017.11.13 |
---|
댓글
최근에 올라온 글
최근에 달린 댓글
TAG
- material-ui
- React
- MS SQL
- flutter
- StringComparison
- c#
- VisualStudio
- Xamarin.Forms 요약
- npm
- Xamarin.Forms
- ASP.NET Core
- Xamarin
- ios
- Vue
- Android
- WPF
- TypeScript
- .NET Standard
- Xamarin.Forms eBook
- Xamarin.iOS
- Total
- Today
- Yesterday