2017-11-15 1 views
0

WCF 서버에 요청을 보내는 웹 API가 있습니다. WCF 프로젝트는 TopShelf를 사용하여 시작됩니다.Azure - WebJob으로 WCF 서비스 실행

내 계획은 API와 WCF를 모두 Azure에 게시하는 것입니다. 클라우드에 App Service를 만들고 앱 서비스에 웹 API를 게시했습니다.

Topshelf.Hosts.ConsoleRunHost 오류 : 0 : 예외가 발생, System.ServiceModel.AddressAlreadyInUseException

나는이 오류 그러나 그것은 지속적으로 실행해야하기 때문에 WCF는 WebJob로 publised했다 웹 API와 WCF가 동일한 앱 서비스를 공유하기 때문입니까?

이 방법이 올바른 방법인지 또는 실제로 VM이 필요한지 모르겠습니다.

정말 도움이됩니다.

답변

0

App Service는 인터넷 연결을 위해 80 및 443 만 지원하기 때문에 WCF 프로젝트 TCP 포트를 외부로 노출 할 수 없습니다. 그러나 App Service 내부에서 커스텀 소켓을 열어 서비스 사이에서 통신 할 수 있어야합니다.

문서에 대한 가장 좋은 곳은 여기에서 볼 수 있습니다 :

https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox#network-endpoint-listening

몇 가지 사항을 확인할 수 :

  1. 하면 WCF 프로젝트는 사용자 정의 TCP 포트를 사용하고 있는지 확인 (안 80, 443)
  2. 공유 계획을 실행 중입니까?

Azure의 IaaS 솔루션 (가상 시스템)을 사용하지 않고 PaaS를 선호하는 경우 Azure Service Fabric을 확인할 수 있습니다. 두 가지 서비스를 사용하여 서비스 패브릭 응용 프로그램을 쉽게 만들 수 있습니다.

+0

감사합니다. 내 WCF 서비스가 포트 50001을 사용하고 있으므로 문제가 될 수 없습니다. 인터넷에서 WCF에 직접 액세스 할 필요가 없으므로 Web API가 필요합니다. 웹 API를 문제없이로드 할 수 있지만 Azure에서 WCF를 호출하면 통과하지 못합니다. 또한 공유 계획에서 WCF를 실행하지 않습니다. – Code4Fun

관련 문제