APIプロジェクトの修正プログラムを作成します。
パブリック クラスプログラム { 公共の 静的な 無効メイン(文字列[] argsを) { CreateWebHostBuilder(引数).Build()を実行します()。 } パブリック 静的 IWebHostBuilder CreateWebHostBuilder(文字列 []引数)=> WebHost.CreateDefaultBuilder(引数) .UseStartup <起動時> () .UseUrls(" http://127.0.0.1:5001 " )。 }
スタートアップを変更します。
公共の 無効設定(IApplicationBuilderアプリ、IHostingEnvironment ENV、IApplicationLifetime applicationLifetime) { もし(env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseMvc(); // 登録領事 // 登録するサービスのアドレス 文字列 IP = 「http://127.0.0.1 」は; // サービスポートを登録するには 文字列ポート= 「5001 」; 文字列 serviceNameを= 「の値を」; 文字列をServiceID = 「test123456789を」; 使用を(VaRの consulClient = 新新consulClient(ConsulConfig)) { AgentServiceRegistrationのASR = 新しいAgentServiceRegistration { アドレス = IP、 ポート = Convert.ToInt32(ポート)、 ID = サービスID、 名前 = serviceNameを、 //は、サービスの健全性監視サービスを設定し、ポーリングメカニズムの設定 // スケジュール定期的なテストサービスは、条件 チェックを= 新しい新しいAgentServiceCheckを { DeregisterCriticalServiceAfter = TimeSpan.FromSeconds(5 )、 HTTP = " http://127.0.0.1:5001/api/Health " 、 間隔 =のTimeSpan.FromSeconds(10 )、 タイムアウト = TimeSpan.FromSeconds(5 ) } }。 consulClient.Agent.ServiceRegister(ASR).WAIT(); } applicationLifetime.ApplicationStopped.Register(() => { 使用(VARの consulClient = 新しいConsulClient(ConsulConfig)) { Console.WriteLineを(「アプリケーションが終了、領事の償却で始まります」); consulClient.Agent.ServiceDeregister(サービスID).WAIT(); } }); } // 委託Consul-設定 プライベート 無効ConsulConfig(ConsulClientConfigurationの設定) { // データセンターのアドレス config.Address = 新しい新しいウリ(" HTTP:// localhostを:8500 " ); config.Datacenter = " DC1 " 。 }
HealthControllerを追加
[生成し(" アプリケーション/ JSON " )] [ルート(" API /健康" )] パブリック クラスHealthController:コントローラ { [HTTPGET] 公共IActionResult取得() { Console.WriteLineを(" ヘルスチェック" + DateTime.Now); 戻りコンテンツ(" OK " ); } }