2011-08-03 16 views
3

그냥 Azure를 탐험하기 시작하고 나는 웹 역할 대 작업자 역할의 목적에 관해서는 여전히 혼란 스럽다. 모바일 애플 리케이션 (아이폰, 안드로이드, 윈도우 등)에서 일하고있는 솔루션에서 REST API를 통해 우리의 서버 제품에 액세스하게 될 것입니다. 그래서 실제로 웹 페이지처럼 우리 서비스에 대한 공개적인 웹 사이트가 없습니다.웹 역할이없는 Windows Azure 프로젝트?

이렇게하면 웹 역할은 필요하지 않지만 대신 HTTP 끝점에서 하나 또는 작업자 역할을 듣게됩니다. 이 줄을 따라 프로토 타입을 만들었습니다. 모바일 장치에서 엔드 포인트에 대한 http 게시를 수행 할 때 응답이 반환되지 않습니다. Azure 로그에는 실제로 내 직원 역할이 시작되었거나 실행 중이며 응답하고 있음을 나타내는 내용이 없습니다.

이 방법이 적절합니까? 웹 역할이 없기 때문에 설치 코드에서 수행해야 할 작업이 있습니까? 다른 스레드에서 IIS에서 웹 롤이 실행되지만 작업자 역할은 그렇지 않습니다.

나를 도와 주셔서 감사합니다. 나는 아직도 Azure와 손을 잡기 위해 올바른 질문을 공식화하는 데 약간의 어려움이있다.

답변

3

하늘색 배포시 웹 역할이 필요하지 않습니다. 읽으면서 웹 역할에 IIS가 있고 웹 사이트가 IIS에서 호스팅됩니다. 작업자 역할은 기본적으로 IIS가없는 일반 W2K8 서버입니다. 솔직히, 저는 직원 역할 인스턴스에 RDP하지 않았으므로 IIS가 없는지 100 % 확신 할 수 없습니다.

그러나 WCF 서비스를 노출하려면 웹 역할이 필요하지 않습니다. nice example (배경색은 약간의 작업이 필요하지만)이 작업 방법을 보여줍니다.

행운을 빈다. 이게 도움이 되길 바란다.

+2

기술적으로 작업자 역할에는 IIS가 설치되어 있지만 w3svc 서비스는 시작되지 않습니다. – smarx

+0

감사! ServiceHost를 얻는 좋은 예입니다. – onnoweb

2

David Hoerster가 말한 것 추가 : 각 엔드 포인트가 http, https 또는 tcp 인 모든 역할 유형에서 최대 25 개의 외부 대면 종점 (각각 자체 포트 번호 포함)을 호스팅 할 수 있습니다. 웹 역할과 IIS의 경우 웹 응용 프로그램은 일반적으로 포트 80에 매핑 된 끝점을 가져옵니다. 사용자의 경우 특정 포트에 고유 한 끝점을 만듭니다. 귀하는 귀하의 ServiceHost (또는 귀하의 서비스를 호스트하기 위해 사용하는 것)를 작성하여 귀하의 엔드 포인트 중 하나에 바인딩 할 책임이 있습니다. 이렇게하려면 각 끝점을 명시 적으로 내부적으로 지정된 특정 포트에 매핑하거나 끝점의 속성을 검사하여 어떤 포트가 동적으로 할당되었는지 검색하여 바인딩 할 수 있습니다 (이 문제는 프로토 타입 코드로 실행 중입니까?).

끝점을 호스팅 할 때 IIS가 제공하는 이점을 찾으려면 웹 역할을 사용하면 IIS를 기본적으로 사용할 수 있으므로 훨씬 쉽게 웹 역할을 수행 할 수 있습니다. Visual Studio에서 웹 역할에 WCF 서비스를 쉽게 추가 할 수 있습니다.)

엔드 포인트를 자체 호스팅하는 경우에도 여전히 웹 역할을 사용할 수 있지만 실행 중이지만 아직 사용되지 않는 IIS 서비스의 추가 메모리가 필요합니다.

+0

예, 저는 웹 역할을 맡고 일부 인프라를 관리하도록 기울이고 있습니다. 클라우드 컴퓨팅 플랫폼의 경우 이것이 단지 존재하지 않는다는 것이 이상하다는 것을 알게되었습니다. Google App Engine과 매우 다릅니다. – onnoweb

+0

+1 - 당신은 이런 것들에 대해 한두 가지를 알고있는 것 같습니다. :) –