2012-05-20 7 views
3

내 사이트의 웹 역할을 원하지만이 사이트가 내가 개발 한 다른 독립형 응용 프로그램과 통신하기를 원합니다.Windows Azure - 동일한 VM에서 웹 역할과 작업자 역할을 실행할 수 있습니까?

두 VM을 가질 필요가 없습니다. 내 wrb 역할과 동일한 VM에서 내 작업자 역할을 수행 할 수 있습니까?

거기에서 내 애플리케이션을 업로드 할 때 RDP를 멈추게하려면 어떻게해야합니까?

특히이 역할은 높은 포트 번호로 연결해야합니다.이를 허용하려면 아무 것도 변경해야합니까? (VM의에 Windows 방화벽에서 aparf)

나는에 준 SO 답변 다른 당신을 가리킬 것이다

답변

4

(지금까지 하늘빛은 호스팅 서버에 대한 지불 justing 것보다 내 인생이 훨씬 더 복잡했다) 이,하지만 ... 웹 역할 및 작업자 역할은 IIS가 실행되거나 실행되지 않는 Windows 2008 서버입니다. 원하는 경우 웹 역할의 모든 것을 실행할 수 있으며로드를 처리 할 인스턴스의 수를 조정할 수 있습니다. 또는 ... 웹 역할 CPU/메모리/네트워크와 경쟁하지 않으려는 일부 작업에 대해 작업자 역할을 만듭니다.

tcp, http 또는 https를 통해 모든 포트에서 수신 할 수 있습니다. 그러한 포트를 최대 25 개까지 열어 놓고 원하는 역할에 트래픽을 직접 연결할 수 있습니다 (해당 역할의 모든 인스턴스에서 부하가 분산 됨).

소프트웨어를 RDP로 설치하고 싶지는 않습니다. VM은 재부팅시 이러한 변경 사항을 유지하지 않습니다. 이것은 Windows Azure의 멋진 부분입니다. webrole.cs 또는 workerrole.cs 내에서 원하는대로 설정할 수 있습니다. 그런 다음 Run()에서 백그라운드 작업 (또는 그 밖의 작업)을 잠 그거나 시작하면됩니다. 부팅하는 동안 높은 권한이 필요한 무언가 (MSI 또는 레지스트리 추가 등)가 필요하면 시작 작업을 사용하여 원하는 모든 작업을 수행 할 수 있습니다. 이러한 변경 사항은 다시 부팅하는 동안 다시 적용됩니다. 비록 ... 물건을 이미 설치했다는 것을 발견하면 설치를 건너 뛰고 설치를 건너 뛸 수 있습니다 (즉, 재부팅 사이에 물건이 보존되는 경우도 있습니다). 그러나 이것에 의지 할 수는 없지만, 자신을 빵 부스러기로 떨어 뜨릴 수는 있습니다. 아는 것들이 설치되었습니다 ...). 내가 게시 당신을 위해

더 SO 답변 :

+0

분명히 말하길 : "TCP, http 또는 https를 통해 모든 포트에서 수신 대기"할 수 있습니다. 자체 TCP 응용 프로그램 수준 프로토콜에서 수신 대기 할 수 있습니까? (TCP라고 말하면 그렇게 추측 할 수 있지만 잘 알려진 특정 응용 프로그램 수준 프로토콜에만 국한 될 수 있음을 나타내는 HTTP라고도합니다). – markmnl

+0

tcp, http 또는 https 인 경우 .net ServiceHost, Tomcat 또는 Jetty와 같은 Java 웹 서버 또는 마음에있는 다른 리스너 등 원하는 리스너를 시작할 수 있습니다. UDP는 지원되지 않습니다. –

+0

tcp를 지원한다면 http와 https를 지원해야합니다 - 그들은 tcp입니다 - 다시 ServiceHost와 Java 웹 서버 기술에 대한 예제를 제공합니다 - 기존의 웹 프로토콜과 관련이없는 자체 TCP 프로토콜입니다 - 광산에서 TCP를 사용합니다 berkely 소켓 - 그게 효과가 있니? – markmnl

1

예, 당신은 Windows 서비스로 작업자 역할을 변환 한 다음에 배포 할 수 있습니다 귀하의 웹 역할.

WebRole은 RoleEntryPoint도 정의 할 수 있으므로 시작시 Windows 서비스를 설치하고 종료하는 데 사용합니다. 방화벽을 통한 포트 열기, IIS 변경 등의 나머지 작업은 명령 줄 스크립트 또는 .NET 코드로 작성하고 인스턴스 시작시 실행하는 것이 좋습니다. 이렇게하면 인스턴스 수를 쉽게 늘릴 수 있으므로 서비스를 확장 할 수 있습니다.

관련 문제