您好,我在Azure WorkerRole中实现了一个TCPIP侦听器。WorkerRole监听传入的TCP数据并将其存储在Azure Table Storage中。
当我在WorkerRole的Run()中执行此操作时,一切都运行正常。
但是,当在WebRole的Run()中实现同样的事情时,我得到一条消息"WebIIS已退出“,并且调试模式在开发环境中退出。
为什么会这样呢?
有人能解释一下WebRole和WorkerRole的不同之处吗?我们能实现一个在WebRole中持续监听的TCPIP监听器吗?
谢谢你,阿尼尔
发布于 2012-05-04 17:38:00
试想一下,WebRole的工作方式就像一个网络应用程序。通过接收请求,然后它返回响应,而Worker角色的工作方式类似于Windows服务。虽然两者都可以传递TPC消息,但它们传递消息的方式有所不同。仅Web角色在处理请求时可用。工作者角色将持续可用。如果希望Web角色连续侦听TCP通道,最有可能的情况是工作人员角色更适合您的需求。
致以敬意,
发布于 2012-05-04 23:16:33
我对类似问题的回答是:https://stackoverflow.com/a/2610895/94559
简而言之,web角色适用于IIS,而工作者角色适用于其他所有角色。在这种情况下,我认为您需要一个工人角色。
发布于 2017-11-27 21:27:06
什么是Azure云服务角色?
在Azure中,云服务角色是托管的、负载平衡的、平台即服务虚拟机的集合,这些虚拟机协同工作来执行常见任务。云服务角色由Azure fabric控制器管理,并提供可伸缩性、控制和自定义的最终组合
什么是网络角色?
网络角色是Azure中的云服务角色,它被配置和自定义以运行基于互联网信息服务(IIS)支持的编程语言/技术开发的网络应用程序,例如ASP.NET、PHP、Windows Communication Foundation和Fast CGI。
什么是工作者角色?
工作者角色是Azure中运行应用程序和服务级别任务的任何角色,这些任务通常不需要IIS。在辅助角色中,默认情况下不安装IIS。它们主要用于执行支持后台进程和Web角色,以及执行任务,如自动压缩上传的图像,当数据库中发生变化时运行脚本,从队列和进程中获取新消息等。
https://stackoverflow.com/questions/10445603
复制相似问题