0

powershell、Azure Emulator、および azure node.js SDK を使用してワーカー ロールを作成しようとしましたが、ワーカー プロセスでモジュールを追加しようとすると問題が発生しました。

これらは私が取ったステップです:

1) Powershell を実行する 2) 新しい azure node.js プロジェクトを作成する

新しい Azure サービス プロジェクト

3) ウェブロールを追加する

azurenodewebrole の追加

4) worker ロールを追加する

add-azurenodeworkerrole

この段階でプロジェクトを実行すると

開始-azureemulator -起動

サイトは正常に動作し、IIS エラーは発生しません。しかし、worker ロールに新しいモジュールのインストールを開始して再度実行しようとすると、「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 ロールからストレージ キューにプッシュし、worker ロールの 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 に答える