3

刚刚开始探索 Azure,我仍然对 Web 角色与工作角色的用途有些困惑。在我正在开发移动应用程序(iPhone、Android、Windows 等)的解决方案中,将通过 REST api 访问我们的服务器产品。因此,我们的服务实际上没有面向公众的网站(如网页)。

这让我觉得我不需要网络角色,而是让一个或工作角色监听我们的 http 端点。我按照这些思路创建了一个原型。当我从移动设备向端点发送 http 帖子时,我没有收到任何回复。我在 Azure 日志中看不到任何内容表明我的辅助角色确实已启动或正在运行并对其做出响应。

这是一个合适的方法吗?因为我没有网络角色,我需要在设置代码中做些什么吗?我在另一个线程中读到 Web 角色在 IIS 中运行,但工作角色没有。

谢谢你陪我。我仍然在掌握 Azure,因此在提出正确的问题时有点困难。

4

2 回答 2

3

你不需要在 Azure 部署中拥有 Web 角色。在您阅读时,Web 角色具有 IIS,并且您的网站托管在其中。工作者角色基本上是一个没有 IIS 的普通旧 W2K8 服务器。老实说,我没有对工作角色实例进行 RDP,所以我不能 100% 确定您是否没有 IIS。

但是您不需要 Web 角色来公开 WCF 服务。这是一个很好的示例(尽管背景颜色需要一些工作),它向您展示了如何执行此操作。

祝你好运!我希望这有帮助。

于 2011-08-03T19:14:46.017 回答
2

补充一下 David Hoerster 所说的:您可以在任何角色类型上托管多达 25 个面向外部的端点(每个端点都有自己的端口号),每个端点是 http、https 或 tcp。使用 Web 角色和 IIS,Web 应用程序通常会抓取映射到端口 80 的端点。在您的情况下,您将在特定端口上创建自己的端点。您负责创建 ServiceHost(或用于托管服务的任何内容)并将其绑定到您的端点之一。为此,您需要将每个端点显式映射到特定的面向内部的端口,或者检查端点的属性以发现动态分配给它的端口,以便您绑定到(这可能是您的问题'遇到你的原型代码?)。

如果您正在寻找 IIS 在托管端点时提供的好处,最好使用 Web 角色,因为 Web 角色默认启用 IIS(而且很容易从 Visual Studio 将 WCF 服务添加到 Web 角色)。

即使您要自托管端点,您仍然可以使用 Web 角色,但现在您将携带正在运行但未使用的 IIS 服务的额外内存包袱。

于 2011-08-04T03:21:00.617 回答