2012-11-26 3 views
1

나는 두 가지 질문을 가지고 있지만 내가 먼저 무대를 설정할 수 사이의 통신. 웹 응용 프로그램은 사용자로부터 요청을 받고 웹 서비스를 쿼리 한 다음 사용자에게 응답을 보냅니다.AppHarbor : <p></p> 당신이 웹 응용 프로그램과 중간 계층 웹 서비스를 일반적인 시나리오를 가지고 말 : 웹 응용 프로그램 및 배경 작업자

웹 서비스와 웹 응용 프로그램이 동일한 컴퓨터에서 실행되는 경우 웹 응용 프로그램은 localhost : port을 통해 웹 서비스에 액세스합니다.

(내가 AppHarbor 웹 및 배경 노동자들이 기존의 시스템에서 실행하지 않는 것을 이해한다하지만 그 은유를 사용하는 것이 더 쉽습니다)

이 약간 복잡하기 위해, 웹 서비스가 실행되는 콘솔 응용 프로그램은 실제로 HTTP 서버와 웹 서비스 역할을하는 webservice.exe를 호출합니다.

첫 번째 질문은 : AppHarbor은 웹 응용 프로그램과 동일한 컴퓨터에서 webservice.exe를 실행하므로 로컬 호스트 : 포트을 통해 웹 응용 프로그램에 웹 응용 프로그램을 액세스 할 수 있도록 설정합니다.

그렇지 않은 경우 콘솔 앱이 실행되는 컴퓨터 이름은 항상 정적입니다 (웹 앱이 machinename : 포트에 안정적으로 액세스 할 수 있도록 허용). 그렇다면 webservice.exe 시스템이 웹 응용 프로그램 시스템에서 들어오는 연결을 허용합니까?

둘째 질문은 두 앱이 동일한 시스템 (로컬 호스트 시나리오)에서 실행되는 경우 외부 사용자가 myapp.apphb.com:port을 통해 webservice.exe에 액세스 할 수 있습니까?

감사합니다.

답변

0

AppHarbor은 현재 콘솔 응용 프로그램이 실행될 백그라운드 작업자를 포트에 연결하는 것을 지원하지 않습니다.

대신 ASP.NET 응용 프로그램에서 서비스를 호스팅하고 AppHarbor의 웹 작업자 (일반 웹 사이트)에서 실행하도록 결정한 경우 myawesomeapplication.apphb.com 또는 사용자 지정 응용 프로그램에서 사용할 수 있습니다 호스트 이름을 추가하려는 경우

서비스 추상화가 필요하지 않은 경우 서비스 추상화를 생략하고 기본 웹 사이트로 접어 넣을 수도 있습니다.

+0

감사합니다. Michael, 내 생각에 서비스 추상화가 필요합니다. 의사 소통을 원활하게하기 위해 RabbitMQ (Cloud AMQP)를 사용할 수 있다고 생각하십니까? 배경 작업자는 대기열에서 대기 할 수 있습니까? – tenor

+1

@tenor 물론, Cloud AMQP는 훌륭한 솔루션이 될 것입니다. – friism