1

Azure でネイティブ コードをホストできるようです: http://msdn.microsoft.com/en-us/library/dd573362.aspx。ここでソケット サーバー (tcp/udp をリッスン) を実行できますか? そして、上に CLR をホストすることさえありますか?

4

1 に答える 1

2

worker ロールでソケット サーバーを実行するのは簡単ですが、udp ではなく tcp のみです。ワーカー ロールの OnStart() メソッドから独自のプロセスを開始できます。Run() メソッドからも実行できますが、実行状態になると、ロード バランサーと外部からロールが認識されるため、tcp を取得する可能性があります。ソケット サーバーが実行される前のトラフィック。

worker ロールの構成で tcp エンドポイントを作成する必要があります (worker ロールを右クリックし、[プロパティ] を表示します)。

代替テキスト

指定したポート番号は外部用です。ロード バランサーは、ロールの各インスタンスに、コードがバインドされる一意のポートを提供します。たとえば、起動時に --tcpport パラメーターを取る MyApp.exe を想像してください。

        var rootDirectory = Path.Combine(Environment.GetEnvironmentVariable("RoleRoot") + "\\", "approot\\MyApp");
        int port = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["MyExternalEndpoint"].IPEndpoint.Port;
        var cmdline = String.Format("--tcpport {0}",port);
        MyProcess = new Process()
            {
                StartInfo = new ProcessStartInfo(Path.Combine(rootDirectory, "myapp.exe"), cmdline)
                {
                    UseShellExecute = false,
                    WorkingDirectory = rootDirectory
                }
            };
            MyProcess.Start();

次に、Run() メソッドで、決して終了してはならないことを知って、単に永遠に待ちます。

MyProcess.WaitForExit();
throw new Exception("MyApp quit on me!");
于 2010-05-30T15:50:38.300 に答える