69 lines
2.9 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.

namespace JiShe.IoT;
public class Program
{
public static async Task<int> Main(string[] args)
{
try
{
//var options = new Yitter.IdGenerator.IdGeneratorOptions(2);
//Yitter.IdGenerator.YitIdHelper.SetIdGenerator(options);
//long nanosecondsFromSnowflakeId = ServicePro.Core.TimestampHelper.NextUnixNanosecondsFromSnowflakeId();
//long nanosecondsDateOffset = ServicePro.Core.TimestampHelper.ToUnixTimeNanoseconds(DateTimeOffset.UtcNow);
//string text = Convert.ToBase64String(Encoding.UTF8.GetBytes("admin:admin123"));
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;
Log.Information("µ±Ç°»·¾³ £º" + env);
string[] filePathArray = new string[] { Environment.CurrentDirectory, "configs" };
string jsonPath = Path.Combine(filePathArray);
builder.AddJsonFile(Path.Combine(jsonPath, "appsettings.json"), false, true);
builder.AddJsonFile(Path.Combine(jsonPath, $"appsettings.{env}.json"), false, true);
});
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();
}
}
}