2025-11-03 16:10:58 +08:00

69 lines
2.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using JiShe.ServicePro.Core;
using Microsoft.Extensions.Configuration;
namespace JiShe.IoT;
public class Program
{
public static async Task<int> Main(string[] args)
{
try
{
Log.Information("JiShe.IoT.HttpApi.Host.");
var builder = WebApplication.CreateBuilder(args);
builder.Host
.AddAppSettingsSecretsJson()
.UseAutofac()
.UseSerilog((context, loggerConfiguration) =>
{
SerilogToEsExtensions.SetSerilogConfiguration(
loggerConfiguration,
context.Configuration);
})
.ConfigureAppConfiguration((context, builder) =>
{
var env = context.HostingEnvironment.EnvironmentName;
string[] filePathArray = new string[] { System.AppDomain.CurrentDomain.BaseDirectory, "configs"};
string jsonPath = Path.Combine(filePathArray);
string defaultJson = Path.Combine(new string[] { jsonPath, "appsettings.json" });
var environmentJson = Path.Combine(new string[] { jsonPath, $"appsettings.{env}.json" } );
builder.AddJsonFile(defaultJson, false, true);
builder.AddJsonFile(environmentJson, false, true);
Console.WriteLine($"当前环境 {env},配置文件路径:{environmentJson}");
});
await builder.AddApplicationAsync<JiShe.IoT.IoTHttpApiHostModule>();
builder.WebHost.ConfigureKestrel((context, options) =>
{
options.Limits.MaxRequestBodySize = 100 * 1024 * 1024; // 100MB null不受限制
options.Limits.KeepAliveTimeout = TimeSpan.FromMinutes(2);
options.Limits.RequestHeadersTimeout = TimeSpan.FromMinutes(1);
//获取或设置请求正文的最小数据速率(字节/秒。将此属性设置为NULL表示不应强制执行最小数据速率。////获取或设置请求正文的最小数据速率(字节/秒。将此属性设置为NULL表示不应强制执行最小数据速率。
options.Limits.MinRequestBodyDataRate = null;//new MinDataRate(bytesPerSecond: 2048, gracePeriod: TimeSpan.FromSeconds(10));
});
builder.WebHost.UseUrls($"http://+:10500");
var app = builder.Build();
await app.InitializeApplicationAsync();
await app.RunAsync();
return 0;
}
catch (Exception ex)
{
if (ex is HostAbortedException)
{
throw;
}
Log.Fatal(ex, "Host terminated unexpectedly!");
return 1;
}
finally
{
await Log.CloseAndFlushAsync();
}
}
}