问题标签 [azure-worker-roles]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
278 浏览

mongodb - 生产非 Azure IIS 服务器上的 Windows Azure TDS 仿真

我正在开发将托管在 Windows Azure 中并使用表数据存储 (TDS) 的 ac# Web 应用程序。

我想构建我的应用程序,以便我还可以(作为一个选项)将应用程序部署到具有其他 NoSql 后端的传统 IIS 服务器。基本上,我想让我的客户选择以软件即服务模式向我付款,或者购买我的应用程序许可证,他们可以将其安装在他们自己的(非天蓝色)生产服务器上。

我怎样才能最好地构建我的数据层和中间层来实现这两个目标?

我可能需要一个 Windows Azure Worker Role 和一个 Azure Queue。复制这些有多复杂?我可以替换自定义 Windows 服务和其他一些排队技术吗?

如何编写数据模型中的实体,以便在不部署到 Azure 时可以部署到 Azure TDS 或其他一些存储?MongoDB或类似的对此有用吗?

当然,有一种方法可以为 Azure 进行架构设计,而无需与之结婚。

0 投票
1 回答
1305 浏览

wcf - Azure 辅助角色中基于 HTTP 的 WCF 服务?

我了解到您可以在 Azure 辅助角色上打开端口 80 并公开运行 WCF 服务。但是,我很难想出这样一个场景,与以 Web 角色运行相比,以这种方式执行此操作更有意义。有任何想法吗?

0 投票
4 回答
681 浏览

concurrency - 如何在 Windows Azure 上以我的辅助角色使用所有内核?

假设我指定我希望我的工作角色在 4 核虚拟机上运行。如何使用所有内核?

看起来有RoleEntryPoint.Run()我覆盖的方法来安装我的请求处理程序。

如何处理使用所有内核的请求?我是手动生成线程并将处理委托给它们,还是有一些现成的聪明抽象可以帮助自动完成?

0 投票
4 回答
1010 浏览

azure - 在这些情况下,我如何检测意外的辅助角色故障并重新处理数据?

我想创建一个托管在 Windows Azure 中的 Web 服务。客户端将上传文件进行处理,云将处理这些文件,生成结果文件,客户端将下载它们。

我想我将使用 Web 角色来处理 HTTP 请求,并使用工作角色来进行实际处理,并使用 Azure 队列或 Azure 表存储之类的东西来跟踪请求。让我们假设它是 Azure 表存储——每个用户上传的文件都有一个“请求”记录。

一个主要的设计问题是处理单个文件可能需要一秒钟到十个小时不等。

所以我期待以下情况:启动一个工作角色,进入 Azure 表存储,找到一个标记为“准备处理”的请求,将其标记为“正在处理”,开始实际处理。通常它会处理文件并将请求标记为“已处理”,但如果它意外死亡怎么办?

除非我照顾它,否则请求将永远保持“正在处理”状态。

如何跟踪标记为“正在处理”但已放弃的请求?Windows Azure 中的哪种机制对此最方便?

0 投票
2 回答
2251 浏览

azure - Azure WebRole 中的 Quartz.Net 作业

我目前正在将 WCF 服务项目移植到 Azure 角色。到目前为止,包含该服务的库还托管了一个 Quartz.Net JobFactory,用于一些轻量级的后台处理(定期清理过时的电子邮件确认令牌)。我是否必须将该代码移动到单独的工人角色中?

0 投票
2 回答
405 浏览

wcf - 为什么要将 Web 服务部署为 Azure 上的 Web 角色?

我的印象是应该在工作角色下运行的 Web 服务。我刚刚发现可以使用 Web 角色设置 Web 服务。使用一个角色相对于另一个角色有什么优势?

0 投票
2 回答
1334 浏览

asp.net-mvc-3 - 从 Azure 中的辅助角色部署 Web 角色

我正在研究一些 Windows Azure 的东西,以便决定是否迁移到 Azure。

基本信息
要回答这个问题,您需要对我的应用程序有一些基本的了解,所以这里是。

该应用程序是一个连接到 SQL Server 数据库的 ASP.NET MVC 3 应用程序。

它是一个单实例应用程序,这意味着每个客户最终都会在我们的服务器上运行自己的应用程序实例,并将其作为网站部署到 IIS 7。

我有一个 SQL Server,每个实例都有自己的数据库。

我还有一组 Windows 服务来做一些后台处理。这应该是直截了当的,因为我将重写那些以在 Windows Azure 中使用 Worker 角色 - 服务中的大部分逻辑无论如何都位于它们自己的类(库)中,所以它自己的服务只调用一个或多个类中的方法。

现在回到问题
每当有人注册免费试用时,我都会将一条记录添加到我拥有的管理数据库中。

然后我有一个 Windows 服务,它将 ASP.NET MVC 3 应用程序的新实例部署到 IIS,授予一些文件夹的权限,运行数据库部署脚本并更新记录以反映它现在已经部署,最后发送向潜在客户发送一封电子邮件,说明他们的免费试用已创建 - 这是您访问它的方式。

那么,如何从 Worker 角色在 Windows Azure 中部署新实例?最好是向现有 Azure 实例添加一个新网站,并为该特定网站创建一个新的 SQL Azure 数据库以供使用。

这需要很多工作来设置吗?甚至可能吗?

0 投票
1 回答
1337 浏览

windows - 为什么 GetEnvironmentVariable() 在 Windows Azure 中为我的 RoleRoot 返回错误的目录?

我正在尝试为 Windows Azure 创建一个在启动时加载自定义 EXE 的 Worker Role 项目。我改编了来自 David Chou 的 Jetty 服务器示例的代码,这里可以找到:

http://blogs.msdn.com/b/dachou/archive/2010/03/21/run-java-with-jetty-in-windows-azure.aspx

使用 Visual Web Developer 2010,我为 Visual C# 创建了一个新的 Cloud 项目,并放入了他的 Worker Role 类代码,如下所示:

问题是当我针对存储模拟器运行项目时,我为 RoleRoot 返回的目录与我的“应用程序”支持文件显示的位置不匹配。“app”文件夹在我通过搜索 WindowsAzureProject2 目录树找到的这个目录中结束:

C:\Users\mycomp\Documents\Visual Studio 2010\Projects\WindowsAzureProject2\WorkerRole1\app

但是 GetEnvironmentVariable("RoleRoot") 将以下内容报告为我的 Trace 语句转储的 RoleRoot 目录:

C:\Users\mycomp\documents\visual studio 2010\Projects\WindowsAzureProject2\WindowsAzureProject2\bin\Debug\WindowsAzureProject2.csx\roles\WorkerRole1

当调用 proc.Start() 时,这当然会导致找不到文件异常,因为自定义 EXE 文件位于前一个目录中,而不是后者。

谁能告诉我为什么 roleRoot 路径看起来很糟糕以及我能做些什么来解决这个问题?请注意,我知道我分配给 proc.StartInfo.FileName 的 EXE 之前的双反斜杠问题(Visual Web Developer C# 与 Visual Studio Pro C# 不同吗?),但修复它不会改变我遇到的路径问题因为 GetEnvironmentVariable("RoleRoot") 返回的目录不包含我的“app”目录。

更新:在做了更多阅读之后,在我看来,真正发生的是“approot”目录没有被创建,我的“app”文件夹文件也没有被复制。我仍然无法弄清楚为什么。

——罗施勒

0 投票
5 回答
9097 浏览

azure - 如何在 Windows Azure 中使用远程桌面调试辅助角色?

我现在已经设置了我的 Windows Azure 环境,以便我可以使用远程桌面访问我的 Worker 角色。但是,我目前不确定如何进行。经过大量挖掘,我发现了一个离线的网站,但在 Google 的缓存中,提到了从 Visual Studio 调试器附加到在 Azure 云中运行的 Worker Role。但是我只有 Visual Developer(不是工作室)2010,而且我已经搜索了所有内容,据我所知,没有这样的选项可以连接到远程服务器。我能够毫无错误地将我的项目发布到 Azure 云,并且我的 Worker Role 的“健康”实例显示为活动且正在运行。

我确实通过 Azure 管理门户连接了 RDP。登录工作正常,远程桌面窗口出现了。我搜索了很多我能找到的东西,但找不到我的工人角色。我对RDP的印象一定是错误的,因为我本来希望在登录的时候看到Worker Role的主显示窗体,就像我在Cloud Emulator本地调试时一样。但相反,我看到的只是一个空白桌面,上面有一些基本的服务器检查和管理例程。我什至检查了事件查看器以获取与应用程序相关的消息,但没有看到。

所以现在我想知道我的 Worker Role 是否真的在运行,尽管来自管理门户的状态消息看似积极,如果可能的话,我仍然想附加到我的 Worker Role 以通过 Visual Developer 进行调试,但我我无法弄清楚如何。

任何有这方面经验的人都可以给我一些关于下一步做什么的可靠提示,请回复。

更新:我相信我的工人角色可能正在运行,因为我打开了一个命令窗口并做了一个 Netstat 并看到它正在侦听正确的端口。但是,这可能只是我的 Worker Role shell 类,它启动了自定义 EXE,我将它作为衍生进程启动。我还没有确认我的自定义 EXE 是否正在运行。

UPDATE-2:刚刚从命令窗口运行 TaskList 并列出了自定义 EXE。

UPDATE-3:一切正常,因为我刚刚对服务进行了远程测试,所以这不是问题。仍然想知道如何从 Visual Developer 2010 附加到 Worker Role 以进行远程调试,以及是否可以像我在 Cloud Emulator 中进行本地调试时一样看到自定义 EXE 的显示形式。

——罗施勒

0 投票
2 回答
1100 浏览

azure - Azure 辅助角色生命周期

Windows Azure 操作系统是否会不时自动重新启动或重置正在运行的辅助角色?或者,如果我在 Run() 方法中有一个循环,我可以依靠我的 Worker 角色无限运行的事实吗?