没有Web角色的Windows Azure项目?

3
我刚开始探索Azure,并对Web角色和Worker角色的目的还有些困惑。在我正在处理的解决方案中,移动应用程序(iPhone、Android、Windows等)将通过REST API访问我们的服务器产品。因此,我们的服务中没有公共面向网站(例如网页)。
这让我想到,我不需要Web角色,而是使用一个或多个Worker角色来监听我们的HTTP端点。我已经按照这个思路创建了一个原型。当我从移动设备向端点做HTTP请求时,我没有得到任何响应。并且我在Azure日志中也没有看到任何表明我的Worker角色已启动或正在运行和响应请求的记录。
这种方法是否合适?因为我没有Web角色,是否有什么设置代码需要修改?我在另一个帖子中读到Web角色在IIS上运行,但Worker角色则不运行。
感谢您的耐心,我仍在努力理解Azure,所以有些难以形成正确的问题。
2个回答

3
您不需要在Azure部署中拥有Web角色。如您所读,Web角色具有IIS,并且您的网站托管在其中。工作角色基本上是一个没有IIS的普通W2K8服务器。老实说,我还没有远程桌面连接到工作角色实例,所以我不能百分之百确定您是否具有IIS。
但是,您不需要Web角色来公开WCF服务。这里有一个很好的示例(尽管背景颜色需要改进),向您展示如何做到这一点。
祝你好运!希望这可以帮到您。

2
从技术上讲,工作角色确实安装了IIS,但w3svc服务没有启动。 - user94559

2
补充David Hoerster所说的内容:任何角色类型上都可以托管多达25个外部端点(每个端点都有自己的端口号),每个端点可以是http、https或tcp。使用Web角色和IIS时,Web应用程序通常会获取映射到端口80的端点。在您的情况下,您将在特定端口上创建自己的端点。您需要创建ServiceHost(或您用于托管服务的其他内容)并将其绑定到其中一个端点。为此,您需要将每个端点明确映射到特定的内部端口,或者检查端点的属性以发现已动态分配给它的端口,以供您绑定(这可能是您在原型代码中遇到的问题吗?)。
如果您正在寻找IIS在托管端点时提供的好处,最好使用Web角色,因为这样做会更容易,因为Web角色默认启用IIS(并且从Visual Studio添加WCF服务很容易)。
即使您要自行托管端点,您仍然可以使用Web角色,但现在您将携带运行但未使用的IIS服务的额外内存负担。

是的,我倾向于使用Web角色并让它负责一些基础设施。我觉得这在云计算平台上很奇怪,因为谷歌应用引擎与之非常不同。 - onnoweb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接