Azure - 作为WebJob运行WCF服务

时间:2017-11-15 08:40:15

标签: c# azure wcf asp.net-web-api azure-webjobs

我有一个Web API,可以将请求发送到WCF服务器。正在使用TopShelf启动WCF项目。

我的计划是将API和WCF发布到Azure中。 为此,我在云中创建了一个App Service,并在应用服务中发布了Web API。

WCF被公开为WebJob,因为我需要它连续运行但是我收到了这个错误:

Topshelf.Hosts.ConsoleRunHost错误:0:发生异常,System.ServiceModel.AddressAlreadyInUseException

这是因为Web API和WCF共享相同的应用服务吗?

我不知道这是否是正确的方法,还是我真的需要一台VM?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您不能将WCF项目的TCP端口暴露给外部,因为App Service仅支持面向Internet的连接的80和443。但是在App Service中,您应该能够打开自定义套接字并使用它来在服务之间进行通信。

文档的最佳位置可从此处获得:

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

你可以检查一些事情:

  1. 确保WCF项目使用自定义TCP端口(不是80,443)
  2. 您是否在共享计划中运行?
  3. 如果您无法使用此功能,并且您不想使用Azure的IaaS解决方案(虚拟机)并且更喜欢PaaS,则可以检查Azure Service Fabric。您应该很容易使用两种服务创建Service Fabric应用程序。