0

我一直在尝试使用 powershell、Azure Emulator 和 azure node.js sdk 创建一个工作角色,但是当我尝试通过工作进程开始添加模块时遇到了问题。

这些是我采取的步骤:

1) 运行 Powershell 2) 创建一个新的 azure node.js 项目

新天蓝色服务项目

3)添加一个webrole

添加-azurenodewebrole

4) 添加工作者角色

添加-azurenodeworkerrole

如果我在这个阶段运行项目

启动 azureemulator -launch

该站点运行良好,没有任何 IIS 错误。但是,当我开始将新模块安装到辅助角色中并尝试再次运行它时,我得到了诸如“Windows Azure Web 角色入口点已停止工作”之类的 Windows IIS 错误,而没有更多关于它为什么停止的信息。有没有其他人遇到过这些错误,更重要的是,有没有人有任何关于如何创建工作角色来运行 cron 作业并与我的 Windows azure 表存储对话的示例?我想做的就是每 5 秒运行一次 cron 作业来检查表存储是否有任何新更新并做一些事情。

有任何想法吗?

错误详情:

Problem Event Name: APPCRASH
Application Name:   iisexpress.exe
Application Version:    8.0.8298.0
Application Timestamp:  4f620349
Fault Module Name:  iiscore.dll
Fault Module Version:   8.0.8298.0
Fault Module Timestamp: 4f63b65c
Exception Code: c0000005
Exception Offset:   00021767
OS Version: 6.1.7601.2.1.0.256.28
Locale ID:  1033
Additional Information 1:   f66d
Additional Information 2:   f66d807b515d6b2dc6f28f66db769a01
Additional Information 3:   7b2f
Additional Information 4:   7b2f6797d07ebc2c23f2b227e779722e

更新,如果我将 webrole 和 worker 角色的实例计数都降低到 1,那么它不会崩溃,也许是 azure 模拟器的问题?

4

2 回答 2

0

这里有几个问题,所以让我们从第一个开始。可以在此处找到使用添加模块 (socket.io) 的工作角色的体面示例: https ://www.windowsazure.com/en-us/develop/nodejs/tutorials/app-using-socketio/

接下来当然是关于 Windows 上的模块的对话。一些具有二进制依赖关系的模块不能在 Windows 上运行。这已经是一个很小的数字,但仍然有可能。你应该看看你是否可以在模拟器之外运行你的工作角色代码来验证这一点。

接下来我们应该考虑这个过程。您通常会将需要操作的更改从您的 Web 角色推送到存储队列中,并从您的辅助角色中的 at 队列中提取。如果您有“cron 模块”,则在触发计时器事件时从队列中拉出顶部项目。你总是可以在这里睡觉,但这种阻塞在节点世界中是不受欢迎的。

于 2012-07-16T19:23:02.257 回答
0

这可能不相关,但我想我应该提一下。我遇到了问题,因为 NodeJS 的默认版本似乎太旧而无法与我正在使用的模块一起使用。您可能需要更改 NodeJS 的版本。要查看可用版本列表:

Get-AzureServiceProjectRoleRuntime

然后,应用特定版本(示例):

Set-AzureServiceProjectRole [Role_Name] Node 0.10.21
于 2016-05-04T05:51:50.770 回答