58 lines
2.0 KiB
C#
58 lines
2.0 KiB
C#
using OpcPks.Core.Services;
|
|
using OpcPks.Core.Models;
|
|
|
|
var builder = WebApplication.CreateBuilder(args);
|
|
|
|
// -----------------------------------------------------------
|
|
// 1. 공통 경로 설정
|
|
// -----------------------------------------------------------
|
|
string baseDataPath = "/home/pacer/projects/OpcPksPlatform/OpcPks.Core/Data";
|
|
|
|
// -----------------------------------------------------------
|
|
// 2. 서비스 등록 (Dependency Injection)
|
|
// -----------------------------------------------------------
|
|
builder.Services.AddControllersWithViews();
|
|
|
|
// [수정] OpcSessionManager를 먼저 등록해야 Generator에서 가져다 쓸 수 있습니다.
|
|
builder.Services.AddSingleton<OpcSessionManager>();
|
|
|
|
// [수정] 팩토리 메서드를 사용하여 OpcSessionManager를 주입(Injection)합니다.
|
|
builder.Services.AddSingleton<CertificateGenerator>(sp =>
|
|
{
|
|
var sessionManager = sp.GetRequiredService<OpcSessionManager>();
|
|
return new CertificateGenerator(baseDataPath, sessionManager);
|
|
});
|
|
|
|
var app = builder.Build();
|
|
|
|
// -----------------------------------------------------------
|
|
// 3. 실행 환경 설정
|
|
// -----------------------------------------------------------
|
|
if (!app.Environment.IsDevelopment())
|
|
{
|
|
app.UseExceptionHandler("/Home/Error");
|
|
app.UseHsts();
|
|
}
|
|
|
|
// -----------------------------------------------------------
|
|
// 4. 미들웨어 및 라우팅 설정
|
|
// -----------------------------------------------------------
|
|
app.UseStaticFiles();
|
|
app.UseRouting();
|
|
app.UseAuthorization();
|
|
|
|
// 컨트롤러 루트 매핑
|
|
app.MapControllerRoute(
|
|
name: "default",
|
|
pattern: "{controller=Home}/{action=Index}/{id?}");
|
|
|
|
// [이미지: ASP.NET Core Dependency Injection Container flow]
|
|
|
|
|
|
// -----------------------------------------------------------
|
|
// 5. 서버 가동
|
|
// -----------------------------------------------------------
|
|
Console.WriteLine("🚀 OpcPksPlatform 서버 대기 중... (http://0.0.0.0:5000)");
|
|
Console.WriteLine("💡 사용자가 '인증서 생성' 버튼을 누를 때까지 대기합니다.");
|
|
|
|
app.Run(); |