73 lines
1.7 KiB
C#
73 lines
1.7 KiB
C#
using AZKiServer.Models;
|
|
using AZKiServer.Services;
|
|
|
|
using MongoDB.Driver;
|
|
|
|
var builder = WebApplication.CreateBuilder(args);
|
|
builder.WebHost.ConfigureKestrel(o =>
|
|
{
|
|
//o.Limits.MaxRequestBodySize = null;
|
|
#if !DEBUG
|
|
o.ListenAnyIP(8081, lo =>
|
|
{
|
|
lo.Protocols = Microsoft.AspNetCore.Server.Kestrel.Core.HttpProtocols.Http2;
|
|
});
|
|
o.ListenAnyIP(8080, lo =>
|
|
{
|
|
lo.Protocols = Microsoft.AspNetCore.Server.Kestrel.Core.HttpProtocols.Http1AndHttp2;
|
|
});
|
|
#endif
|
|
});
|
|
|
|
var config = builder.Configuration;
|
|
|
|
var dbString = config["DB_STRING"];
|
|
var dbClient = new MongoClient(dbString);
|
|
var db = dbClient.GetDatabase("AZKi");
|
|
|
|
// Add services to the container.
|
|
builder.Services.AddSingleton(dbClient);
|
|
builder.Services.AddSingleton<IMongoDatabase>(db);
|
|
builder.Services.AddControllers(opt => opt.ModelBinderProviders.Add(new BsonIdModelBinderProvider()));
|
|
builder.Services.AddGrpc();
|
|
builder.Services.AddHostedService<FileScannerService>();
|
|
builder.Services.AddTransient<MediaService>();
|
|
|
|
builder.Services.AddCors(o =>
|
|
{
|
|
o.AddPolicy("AllowAll", p =>
|
|
{
|
|
p.AllowAnyOrigin();
|
|
p.AllowAnyMethod();
|
|
p.AllowAnyHeader();
|
|
});
|
|
o.AddPolicy("RPC", p =>
|
|
{
|
|
p.AllowAnyMethod();
|
|
p.AllowAnyHeader();
|
|
p.WithExposedHeaders("Grpc-Status", "Grpc-Message", "Grpc-Encoding", "Grpc-Accept-Encoding");
|
|
p.AllowAnyOrigin();
|
|
});
|
|
});
|
|
|
|
|
|
var app = builder.Build();
|
|
|
|
app.UseGrpcWeb(new GrpcWebOptions { DefaultEnabled = true });
|
|
app.UseStaticFiles();
|
|
app.UseRouting();
|
|
app.UseCors();
|
|
|
|
|
|
//app.UseAuthentication();
|
|
//app.UseAuthorization();
|
|
|
|
// Configure the HTTP request pipeline.
|
|
app.MapControllers();
|
|
app.MapGrpcService<AZKiRpcService>()
|
|
.AllowAnonymous()
|
|
.RequireCors("RPC");
|
|
app.MapFallbackToFile("index.html");
|
|
|
|
app.Run();
|