2011-08-03 117 views
3

刚开始探索Azure,对于Web角色与工作角色的用途我还是有点困惑。在解决方案中,我正在使用移动应用程序(iPhone,Android,Windows等)将通过REST API访问我们的服务器产品。因此,我们的服务确实没有面向公众的网站(如在网页中)。没有Web角色的Windows Azure项目?

这让我觉得我并不需要一个Web角色,而是有一个或工作者角色监听我们的http端点。我沿着这些线创建了一个原型。当从移动设备上我做了一个http post到端点,我没有回应。我在Azure日志中看不到任何内容,表明我的工作者角色确实已启动或正在运行并对其进行响应。

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

感谢您与我的轴承。我仍然在与Azure交手,因此在制定正确的问题时有点困难。

回答

3

你并不需要在你的天蓝色部署Web角色。在您阅读时,Web角色具有IIS,并且您的网站托管在其中。工作者角色基本上是一个没有IIS的老式W2K8服务器。老实说,我没有RDP到一个工人角色实例,所以我不能100%确定你没有IIS或没有。

但你不为了揭露一个WCF服务需要一个Web角色。这里有一个nice example(虽然背景颜色需要一些工作),告诉你如何做到这一点。

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

+2

从技术上讲,工作角色确实安装了IIS,但w3svc服务未启动。 – smarx

+0

谢谢!一个获得ServiceHost的好例子。 – onnoweb

2

添加到什么大卫Hoerster说:你可容纳上的任何角色类型25面向外部的端点(每个都有自己的端口号),每个端点是HTTP,HTTPS或TCP。使用Web角色和IIS,Web应用程序通常会抓取映射到端口80的端点。就您而言,您将在特定端口上创建自己的端点。您有责任创建ServiceHost(或用于托管服务的任何内容)并将其绑定到您的一个端点。为此,您需要将每个端点显式映射到特定的面向内部的端口,或者检查端点的属性以发现哪个端口已动态分配给它,供您绑定(可能这是您的问题你的原型代码是否正在运行?)。

如果您正在寻找托管端点时IIS提供的好处,最好使用Web角色,因为默认情况下Web角色启用IIS会使您更容易执行此操作并且很容易从Visual Studio中将WCF服务添加到Web角色中)。

即使你是自托管的端点,你仍然可以使用一个Web角色,但现在你会背着跑,尚未使用,IIS服务的额外内存的行李。

+0

是的,我倾向于拥有一个Web角色,并且关心一些基础架构。我觉得很奇怪,对于云计算平台来说,这不仅仅是在那里。与Google App Engine非常不同。 – onnoweb

+0

+1 - 你似乎对这些事情知道一两件事。 :) –