diff options
Diffstat (limited to 'MatrixUtils.Web.Server')
-rw-r--r-- | MatrixUtils.Web.Server/MatrixUtils.Web.Server.csproj | 23 | ||||
-rw-r--r-- | MatrixUtils.Web.Server/Pages/Error.cshtml | 41 | ||||
-rw-r--r-- | MatrixUtils.Web.Server/Pages/Error.cshtml.cs | 19 | ||||
-rw-r--r-- | MatrixUtils.Web.Server/Program.cs | 30 | ||||
-rw-r--r-- | MatrixUtils.Web.Server/Properties/launchSettings.json | 40 | ||||
-rw-r--r-- | MatrixUtils.Web.Server/appsettings.Development.json | 8 | ||||
-rw-r--r-- | MatrixUtils.Web.Server/appsettings.json | 9 |
7 files changed, 170 insertions, 0 deletions
diff --git a/MatrixUtils.Web.Server/MatrixUtils.Web.Server.csproj b/MatrixUtils.Web.Server/MatrixUtils.Web.Server.csproj new file mode 100644 index 0000000..c4318d0 --- /dev/null +++ b/MatrixUtils.Web.Server/MatrixUtils.Web.Server.csproj @@ -0,0 +1,23 @@ +<Project Sdk="Microsoft.NET.Sdk.Web"> + + <PropertyGroup> + <TargetFramework>net8.0</TargetFramework> + <Nullable>enable</Nullable> + <ImplicitUsings>enable</ImplicitUsings> + <LangVersion>preview</LangVersion> + </PropertyGroup> + + <ItemGroup> + <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="8.0.0" /> + </ItemGroup> + + <ItemGroup> + <ProjectReference Include="..\MatrixUtils.Web\MatrixUtils.Web.csproj" /> + </ItemGroup> + + <ItemGroup> + <Folder Include="Controllers" /> + </ItemGroup> + + +</Project> diff --git a/MatrixUtils.Web.Server/Pages/Error.cshtml b/MatrixUtils.Web.Server/Pages/Error.cshtml new file mode 100644 index 0000000..a29e836 --- /dev/null +++ b/MatrixUtils.Web.Server/Pages/Error.cshtml @@ -0,0 +1,41 @@ +@page +@model MatrixUtils.Web.Server.Pages.ErrorModel + +<!DOCTYPE html> +<html lang="en"> + +<head> + <meta charset="utf-8"/> + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/> + <title>Error</title> + <link href="~/css/bootstrap/bootstrap.min.css" rel="stylesheet"/> + <link href="~/css/app.css" rel="stylesheet" asp-append-version="true"/> +</head> + +<body> +<div class="main"> + <div class="Content px-4"> + <h1 class="text-danger">Error.</h1> + <h2 class="text-danger">An error occurred while processing your request.</h2> + + @if (Model.ShowRequestId) { + <p> + <strong>Request ID:</strong> <code>@Model.RequestId</code> + </p> + } + + <h3>Development Mode</h3> + <p> + Swapping to the <strong>Development</strong> environment displays detailed information about the error that occurred. + </p> + <p> + <strong>The Development environment shouldn't be enabled for deployed applications.</strong> + It can result in displaying sensitive information from exceptions to end users. + For local debugging, enable the <strong>Development</strong> environment by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong> + and restarting the app. + </p> + </div> +</div> +</body> + +</html> \ No newline at end of file diff --git a/MatrixUtils.Web.Server/Pages/Error.cshtml.cs b/MatrixUtils.Web.Server/Pages/Error.cshtml.cs new file mode 100644 index 0000000..3afc061 --- /dev/null +++ b/MatrixUtils.Web.Server/Pages/Error.cshtml.cs @@ -0,0 +1,19 @@ +using System.Diagnostics; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace MatrixUtils.Web.Server.Pages; + +[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] +[IgnoreAntiforgeryToken] +public class ErrorModel : PageModel { + private readonly ILogger<ErrorModel> _logger; + + public ErrorModel(ILogger<ErrorModel> logger) => _logger = logger; + + public string? RequestId { get; set; } + + public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); + + public void OnGet() => RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier; +} diff --git a/MatrixUtils.Web.Server/Program.cs b/MatrixUtils.Web.Server/Program.cs new file mode 100644 index 0000000..cad3878 --- /dev/null +++ b/MatrixUtils.Web.Server/Program.cs @@ -0,0 +1,30 @@ +var builder = WebApplication.CreateBuilder(args); + +// Add services to the container. + +builder.Services.AddControllersWithViews(); +builder.Services.AddRazorPages(); + +var app = builder.Build(); + +// Configure the HTTP request pipeline. +if (app.Environment.IsDevelopment()) + app.UseWebAssemblyDebugging(); +else { + app.UseExceptionHandler("/Error"); + // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. + app.UseHsts(); +} + +app.UseHttpsRedirection(); + +app.UseBlazorFrameworkFiles(); +app.UseStaticFiles(); + +app.UseRouting(); + +app.MapRazorPages(); +app.MapControllers(); +app.MapFallbackToFile("index.html"); + +app.Run(); diff --git a/MatrixUtils.Web.Server/Properties/launchSettings.json b/MatrixUtils.Web.Server/Properties/launchSettings.json new file mode 100644 index 0000000..ad7ef88 --- /dev/null +++ b/MatrixUtils.Web.Server/Properties/launchSettings.json @@ -0,0 +1,40 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:6314", + "sslPort": 44318 + } + }, + "profiles": { + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", + "applicationUrl": "http://localhost:5167", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", + "applicationUrl": "https://localhost:7235;http://localhost:5167", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/MatrixUtils.Web.Server/appsettings.Development.json b/MatrixUtils.Web.Server/appsettings.Development.json new file mode 100644 index 0000000..0c208ae --- /dev/null +++ b/MatrixUtils.Web.Server/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/MatrixUtils.Web.Server/appsettings.json b/MatrixUtils.Web.Server/appsettings.json new file mode 100644 index 0000000..10f68b8 --- /dev/null +++ b/MatrixUtils.Web.Server/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} |