我有两个问题,但让我先设定一个阶段:
假设您有一个典型的场景,您拥有Web应用程序和中间层Web服务。 Web应用程序接收来自用户的请求,查询Web服务并向用户发送响应。
如果Web服务和Web应用程序在同一台计算机上运行,则Web应用程序将通过 localhost:port 访问Web服务。
(我知道AppHarbor网络和后台工作人员没有在传统机器上运行,但使用这种比喻更容易)
为了使这个稍微复杂一点,Web服务实际上是一个运行HTTP服务器的控制台应用程序,因此充当Web服务,我们称之为webservice.exe。
我的第一个问题是:AppHarbor是否会在与Web应用程序相同的计算机上运行webservice.exe,因此允许Web应用程序通过 localhost:port 访问Web服务。
如果没有,控制台应用程序运行的机器名称将始终是静态的(允许Web应用程序可靠地访问 machinename:port )。如果是这样,webservice.exe机器是否允许来自Web应用程序机器的传入连接?
我的第二个问题是,如果两个应用程序在同一台计算机上运行(localhost方案),外部用户是否可以通过 myapp.apphb.com:port 访问webservice.exe?
谢谢!
答案 0 :(得分:0)
AppHarbor目前不支持附加到端口的后台工作程序(这是您的控制台应用程序将运行的位置)。
如果您决定在ASP.NET应用程序中托管服务并在AppHarbor上的Web工作者(作为普通网站)中运行它,那么它将在myawesomeapplication.apphb.com上或使用自定义主机名提供如果您决定添加一个。
如果不需要服务抽象,您可能还想取消它并将其折叠到主网站。