3

Azure の調査を始めたばかりで、Web ロールとワーカー ロールの目的についてまだ少し混乱しています。モバイル アプリ (iPhone、Android、Windows など) に取り組んでいるソリューションでは、REST API を介してサーバー製品にアクセスします。そのため、(Web ページのように) 私たちのサービスのための公開 Web サイトは実際にはありません。

これにより、Web ロールは必要なく、代わりに 1 つまたはワーカー ロールが http エンドポイントでリッスンしていると思いました。これらの線に沿ってプロトタイプを作成しました。モバイル デバイスからエンドポイントに http ポストを送信すると、応答が返されません。また、実際に自分の worker ロールが開始されたか、実行中であり、それに応答していることを示す Azure ログには何も表示されません。

これは適切なアプローチですか?Web ロールを持っていないため、セットアップ コードで何かする必要がありますか? Web ロールは IIS で実行されますが、worker ロールは実行されないという別のスレッドを読みました。

我慢してくれてありがとう。私はまだ Azure に慣れていないので、正しい質問を作成するのに少し苦労しています。

4

2 に答える 2

3

Azure デプロイに Web ロールを用意する必要はありません。お読みのとおり、Web ロールには IIS があり、Web サイトは IIS でホストされています。ワーカー ロールは、基本的に IIS を使用しない単純な古い W2K8 サーバーです。正直なところ、ワーカー ロール インスタンスに RDP 接続したことはないので、IIS を使用していないかどうかは 100% 確信が持てません。

ただし、WCF サービスを公開するために Web ロールは必要ありません。これを行う方法を示す良い例を次に示します (ただし、背景色には多少の作業が必要です)。

幸運を!これが役立つことを願っています。

于 2011-08-03T19:14:46.017 に答える
2

David Hoersterが言ったことに加えて:各エンドポイントがhttp、https、またはtcpである場合、任意のロールタイプで最大25の外部に面するエンドポイント(それぞれが独自のポート番号を持つ)をホストできます。WebロールとIISを使用すると、Webアプリケーションは通常、ポート80にマップされたエンドポイントを取得します。この場合、特定のポートに独自のエンドポイントを作成します。ServiceHost(またはサービスのホストに使用しているもの)を作成し、それをエンドポイントの1つにバインドするのはユーザーの責任です。これを行うには、各エンドポイントを特定の内部に面したポートに明示的にマップするか、エンドポイントのプロパティを調べて、どのポートが動的に割り当てられているかを検出して、バインドする必要があります(これが問題になる可能性があります) 'プロトタイプコードに遭遇していますか?)

エンドポイントをホストするときにIISが提供する利点を探している場合は、Webロールを使用する方がよいでしょう。WebロールはデフォルトでIISを有効にするため、これを行うのがはるかに簡単になります( Visual StudioからWebロールにWCFサービスを追加します)。

エンドポイントをセルフホストする場合でも、Webロールを使用できますが、実行中の未使用のIISサービスの余分なメモリの手荷物を運ぶことになります。

于 2011-08-04T03:21:00.617 に答える