2

これがAzureサービスで可能かどうか、そしてそれが最善のアプローチであるかどうかはわかりません。

データベースからデータを抽出し、xml出力を構築しているクラスがあります。これはワーカーロールで実行されているため、通常の状況では、必要に応じて実行され、XMLを外部Webサービスにプッシュします。ただし、別の外部Webサービスがシステムに対してWebサービス呼び出しを行い、まったく同じXML応答を取得できるように、その機能をサービスとして公開する機能も必要です。ワーカーロールでRESTfulWebサービスをセットアップし、ワーカーロールに存在するのと同じ機能を構築できます。問題は、コードが重複していることです。

これを設定して、DBからの追加データへのコード、いくつかの計算の実行、すべてのxmlの生成を、Webロール(外部Webサービス呼び出しによってトリガーされる)とワーカーロール(通常の場合)の両方からアクセスできる1つの場所に配置するにはどうすればよいですか?実行スケジュール)。

TCP内部エンドポイントとワーカーWebロール通信に関するすべての質問を調べましたが、Webロールがワーカーロールのメソッドを呼び出してそのデータを呼び出し元に渡すことを許可するこのケースをカバーしているものはないようです。

誰かがこれで私を助けることができれば非常にありがたいです。ありがとう

4

2 に答える 2

5

技術的には、解決策は、すべての共有コードを含むクラスライブラリ(.NETアセンブリ)を作成し、両方のロールプロジェクトからそれを使用することです。アセンブリがロールパッケージにパックされるように、各ロールプロジェクトのそのアセンブリへの参照で「ローカルコピー」を「true」に設定する必要があります。

ただし、あなたの場合、より良い解決策があるかもしれません。両方の目的でWebロールを使用することもできます。つまり、Webロールはワーカーロールのようなもので、ボーナスIISがインストールされているだけです。本当に(本当に-本当に)それらを個別にスケーリングおよび更新する必要がない限り、すべてにWebの役割を使用するだけで、多くの管理と展開の苦痛とお金を節約できます。

于 2013-02-20T05:31:42.210 に答える
1

私があなたの場合、Webロールとして作成し、ワーカーロールにメッセージを送信し、このメッセージに基づいて、ワーカーロールでイベントをトリガーして必要なプロセスを開始します。

これは、キューストレージまたはWCFサービスを使用して実行できます。

于 2013-02-19T17:42:28.807 に答える