问题标签 [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 投票
3 回答
7830 浏览

.net - 如何在 Windows azure worker 角色中创建多个线程

我想在一个工作人员角色中执行多项操作。如何在工作角色中创建线程?

0 投票
1 回答
3361 浏览

wcf - Azure 辅助角色中的外部 HTTP 终结点可能吗?

我正在尝试以辅助角色在 Azure 上托管面向外部的 WCF 服务。

我有一个解决方案在本地工作得很好,但是当我尝试将它发布到 Azure 时,它​​会进入初始化/忙碌/停止循环。

我在互联网上找到的信息说明了不同的事情:

http://www.theworkflowelement.com/2011/01/worker-role-service-hosting-faq.html(不可能)

http://code.msdn.microsoft.com/WCF-Azure-Worker-Role-on-b394df49(可能有黑客)

其他消息来源说这是可能的,但我没有代表发布两个以上的链接。

最后一个在我尝试发布时一直处于忙碌状态。

任何人都知道如何做到这一点,或者如果它真的是不可能的?将它托管在工作角色中会非常好,因此我不必使用 Web 角色所需要的 svc 和 web.config 混乱。

这是我正在使用的代码:

0 投票
1 回答
3487 浏览

azure - 如何在 Azure 中静默/自动安装桌面体验?

我需要在 Azure Worker Role 中安装桌面体验。通过命令行安装 DE 可以通过以下方式完成:

然后需要重新启动。

如何在 Azure Worker Role 中最好地完成这项工作?


更新:

1) 确保使用 OS Family 2 和 SDK >=1.3

2)使用提升的启动任务通过以下命令调用包含的批处理文件:


我努力了

a) 将该命令行放入批处理/.cmd 文件并通过提升的启动任务运行它。结果:worker 角色保持 Aborting 并在无休止的循环中重新启动。

b)我试图在 OnStart() 中创建一个新的 Process(),在提升的运行时,如下所示:

服务定义.csdef:

WorkerRole.cs:

安装DesktopExperience.cmd:

重启.cmd:

结果是 Azure Worker Role 中的事件查看器显示来自 TrustedInstaller (0xc0000005) 的异常。在事件日志中显示此错误后,无法通过打开命令行窗口并键入命令手动安装 DE。我得到错误:

错误:[桌面体验] 安装失败。尝试安装桌面体验失败,错误代码为 0x80080005。服务器执行失败(来自 HRESULT 的异常:0x80080005 (CO_E_SERVER_EXEC_FAILURE))

(但如果我没有在 OnStart 中运行代码,它可以在命令行窗口中手动执行)

我迷路了。提前感谢您的任何和所有建议。

0 投票
1 回答
632 浏览

c# - 在 Windows Azure 应用程序模拟器中部署“Google 数据 API”应用程序后出错

目前我正在研究 Google DATA 日历和联系人 API。我编写了一个 Web 应用程序来通过 Google 数据 API 访问公共日历。它在本地运行良好。

在 Azure Emulator 中部署此应用程序后,它停止工作说

InnerException {“连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立连接失败,因为连接的主机没有响应 209.85.231.104:443”} System.Exception {System.Net.Sockets.SocketException }

编写的代码:

你能在这方面帮助我吗?

0 投票
4 回答
9730 浏览

azure - 每个实例运行多个 WorkerRoles

我有几个WorkerRole只做很短时间的工作,把它们放在一个实例中会浪费钱。我们可以将它们合并为一个,但这会很混乱,并且在遥远的将来,当负载增加时它们应该独立工作。

WorkerRole有没有办法像创建“多站点”一样创建“多角色” WebRole

在否定的情况下,我认为我可以创建一个“主工作者角色”,它能够从给定文件夹加载程序集,查找具有反射的 RoleEntryPoint 派生类,创建实例并调用.Run()or.OnStart()方法。这个“主工作者角色”也会重新抛出意外异常,并在主节点调用时调用.OnStop()所有子节点。它会起作用吗?我应该注意什么?RoleEntryPoint.OnStop()

0 投票
2 回答
2062 浏览

sockets - 从已部署的应用程序获取 Azure 公共 IP 地址

PASV在服务器中实现该模式FTP,并向客户端发送数据端点的 IP 地址和端口。这很愚蠢,因为 IP 实际上是客户端已经连接的地方,所以有两种选择:

  1. 如何IP 从给定实例中获取公共地址?不是VIP,而是公共的。

  2. 如何 IP从对象中获取用户使用的原始目标地址Socket?考虑中间的路由器和负载平衡器:P

回答这些问题中的任何一个都可以,尽管还有另一种可行的方法……我可以让公共IP地址查DNS一下myapp.cloudapp.net吗?

第四种选择是使用 Azure 管理 API 库……但是,太麻烦了:P。

干杯。

0 投票
1 回答
446 浏览

sockets - 从 Azure 实例获取 ServiceDefinition.csdef

我需要从 .csdef 文件中获取原始端点配置,我该怎么做?

我不能使用RoleEnvironment.CurrentRoleInstance.InstanceEndpoints,因为它为我提供了虚拟 IP 中的内部/本地端口。但我需要知道向公众展示的端口是哪个。

例如,我有一个带有tcp 21端点的 FTP 服务器,但是当我在运行时检查该集合时,它可能具有类似tcp 5100. 例如,当我将 FTP 服务器绑定到服务器tcp 5100并通过它访问服务器时,127.0.0.1:21它工作得很好。

但是例如,当我需要建立PASV模式时,我必须发回客户端应该连接的IP和端口。我会计算出IP,但是我怎么知道已经为PASV配置的端口呢?不保证上一个集合中的端口与公共接口中公开的端口相同。

所以基本上,我怎样才能得到原始的 .csdef 配置?

干杯。

0 投票
1 回答
1545 浏览

azure - Windows Azure 云中*工作者角色*的概念是什么?

据我了解,它是服务器中长时间运行的过程。能否覆盖网络游戏服务器等长时间运行的程序实例?

0 投票
2 回答
759 浏览

c# - Windows Azure Hello World 示例失败:一个或多个角色的启动角色失败

我无法运行 Windows Azure Hello World 示例。它给了我以下错误:

“一个或多个角色的启动角色失败”。

我将项目放在我的 D 驱动器的根目录中,以确保路径长度不是问题。我还清除了 Azure 临时文件夹。

我正在使用新发布的 SDK 1.4 版。

0 投票
2 回答
1377 浏览

azure - 如何终止特定的 Azure 辅助角色实例

背景

我正在尝试为 Azure 应用程序制定最佳结构。我的每个工人角色都会启动多个长期运行的工作。随着时间的推移,我可以将作业从一个实例转移到另一个实例,方法是在源实例上将它们切换到只读模式,在目标实例上旋转它们,然后在源实例上旋转原始实例。

如果我有太多工作,那么我可以告诉 Azure 启动额外的角色实例,并将它们用于新工作。相反,如果我的负载下降(例如在夜间),那么我可以将未完成的作业合并到几台机器上,并告诉 Azure 给我更少的实例。

问题是(据我了解)Azure 没有提供任何机制让我决定停止哪个实例。因此,我不知道要整合到哪些服务器上,并且我的一些作业会在它们的实例停止时终止,从而导致用户在我在幸存的实例上重新启动这些作业时出现延迟。

想法 1:我决定停止哪个实例,并从它的 Run() 返回。然后我告诉 Azure 将我的实例计数减少 1,并希望它得出结论,损坏的实例是一个很好的候选者。有没有人尝试过这样的事情?

想法2:我预先定义了一大堆不同的工人角色,具有相同的内容。我可以通过将它们的实例计数从零切换到一来单独停止和启动它们,然后再返回。我认为这个想法会奏效,但我不喜欢它,因为它似乎违背了 Azure 的自然做事方式,并且因为它涉及到我需要进行大量额外的簿记来管理额外的工作角色。

想法3:忍受它。

有更好的想法吗?