2025-10-27 17:31:37 +08:00

94 lines
4.0 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;
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);
//BusinessSystemAggregation.Dto.BatchQueryDeviceDataInfoInput batchQueryDeviceDataInfoInput = new BusinessSystemAggregation.Dto.BatchQueryDeviceDataInfoInput()
//{
// DeviceType = ServicePro.Enums.DeviceTypeEnum.Ammeter,
// DeviceAddresses = new List<string>()
// {
// "332018305",
// "332053764",
// },
// BeginTime = DateTime.Now.AddDays(-1),
// EndTime = DateTime.Now,
// IoTDataType = "Data",
//};
//OpenApiRequest openApiRequest = new OpenApiRequest()
//{
// Message = JiShe.ServicePro.Core.ServiceProJsonSerializer.Serialize(batchQueryDeviceDataInfoInput,false),
// Signature = "admin:admin123",
// Timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(),
// Nonce = "admin:admin123",
//};
//string signature = openApiRequest.Serialize();
//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("<22><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD> <20><>" + 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<6C><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
options.Limits.KeepAliveTimeout = TimeSpan.FromMinutes(2);
options.Limits.RequestHeadersTimeout = TimeSpan.FromMinutes(1);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3>ֽ<EFBFBD>/<2F><EFBFBD><EBA3A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪNULL<4C><4C>ʾ<EFBFBD><CABE>Ӧǿ<D3A6><C7BF>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʡ<EFBFBD>////<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3>ֽ<EFBFBD>/<2F><EFBFBD><EBA3A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪNULL<4C><4C>ʾ<EFBFBD><CABE>Ӧǿ<D3A6><C7BF>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʡ<EFBFBD>
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();
}
}
}