_ aggiunto gestione mimetype coinfigurabile
- fix AppUri base
This commit is contained in:
Samuele Locatelli
2024-10-29 17:21:50 +01:00
parent d1f694da1b
commit a66c0fdadf
9 changed files with 63 additions and 12 deletions
+1 -1
View File
@@ -13,7 +13,7 @@ using StackExchange.Redis;
var builder = WebApplication.CreateBuilder(args);
/*--------------------
* Note migrazione startup.cs -_> program.cs:
* Note migrazione startup.cs --> program.cs:
*
* - https://stackoverflow.com/questions/69722872/asp-net-core-6-how-to-access-configuration-during-startup
* - https://docs.microsoft.com/en-us/aspnet/core/migration/50-to-60?view=aspnetcore-5.0&tabs=visual-studio#where-do-i-put-state-that-was-stored-as-fields-in-my-program-or-startup-class
+1 -1
View File
@@ -5,7 +5,7 @@
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<RootNamespace>MP.SPEC</RootNamespace>
<Version>6.16.2410.1816</Version>
<Version>6.16.2410.2917</Version>
<UserSecretsId>1800a78a-6ff1-40f9-b490-87fb8bfc1394</UserSecretsId>
</PropertyGroup>
+33 -2
View File
@@ -3,6 +3,8 @@ using Blazored.SessionStorage;
using Microsoft.AspNetCore.Authentication.Negotiate;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Web;
using Microsoft.AspNetCore.StaticFiles;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.FileProviders;
using MP.SPEC.Components;
using MP.SPEC.Data;
@@ -31,7 +33,7 @@ ConfigurationManager configuration = builder.Configuration;
// REDIS setup
logger.Info("Setup REDIS");
logger.Info("Setup REDIS");
string connStringRedis = configuration.GetConnectionString("Redis");
//string connStringRedis = ConfMan.GetConnectionString("RedisAdmin");
string redisSrvAddr = connStringRedis.Substring(0, connStringRedis.IndexOf(":"));
@@ -40,7 +42,7 @@ var redisMultiplexer = ConnectionMultiplexer.Connect(connStringRedis);
// Add services to the container.
logger.Info("Setup Auth");
logger.Info("Setup Auth");
builder.Services.AddAuthentication(NegotiateDefaults.AuthenticationScheme)
.AddNegotiate();
@@ -66,6 +68,10 @@ logger.Info("Aggiunti services");
var app = builder.Build();
logger.Info("Build App");
// aggiunt base URL x routing corretto
app.UsePathBase(configuration.GetValue<string>("SpecialConf:AppUrl"));
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
@@ -82,12 +88,37 @@ app.UseStaticFiles();
string BasePathOdlReturn = configuration.GetValue<string>("ServerConf:BasePathOdlReturn") ?? configuration.GetValue<string>("OptConf:BasePathOdlReturn") ?? "";
if (!string.IsNullOrEmpty(BasePathOdlReturn))
{
// preparo mappings opzionali se presenti in conf...
var provider = new FileExtensionContentTypeProvider();
// vedere https://code-maze.com/dotnet-appsettings-json-content-to-dictionary/
var mimeSection = configuration.GetSection("ServerConf:MimeMappings");
if (mimeSection != null)
{
var mimeDict = mimeSection
.AsEnumerable()
.Where(x => !string.IsNullOrWhiteSpace(x.Value))
.ToDictionary(x => x.Key.Replace("ServerConf:MimeMappings:", ""), x => x.Value);
// se ne ho trovati
if (mimeDict != null && mimeDict.Count > 0)
{
// li aggiungo! vedere
// https://thechrisgreen.com/2022/05/add-a-mime-type-to-an-asp-net-core-net-6-app/
// https://harrybellamy.com/posts/getting-mime-types-from-file-extensions-in-net-core/
foreach (var item in mimeDict)
{
// Add new mappings
provider.Mappings[item.Key] = item.Value;
}
}
}
// verifico esista folder
if (Directory.Exists(BasePathOdlReturn))
{
// gestione cartella x file ritornati x ODL
app.UseStaticFiles(new StaticFileOptions
{
ContentTypeProvider = provider,
FileProvider = new PhysicalFileProvider(BasePathOdlReturn),
RequestPath = "/RET_DATA",
});
+1 -1
View File
@@ -1,6 +1,6 @@
<body>
<i>Modulo MAPOSPEC </i>
<h4>Versione: 6.16.2410.1816</h4>
<h4>Versione: 6.16.2410.2917</h4>
<br /> Note di rilascio:
<ul>
<li>
+1 -1
View File
@@ -1 +1 @@
6.16.2410.1816
6.16.2410.2917
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<item>
<version>6.16.2410.1816</version>
<version>6.16.2410.2917</version>
<url>https://nexus.steamware.net/repository/SWS/MP-SPEC/stable/LAST/MP.SPEC.zip</url>
<changelog>https://nexus.steamware.net/repository/SWS/MP-SPEC/stable/LAST/ChangeLog.html</changelog>
<mandatory>false</mandatory>
+8 -2
View File
@@ -8,7 +8,6 @@
}
},
"AllowedHosts": "*",
"CodApp": "MP.SPEC",
"ConnectionStrings": {
"MP.Data": "Server=localhost\\SQLEXPRESS;Database=MoonPro; User ID=steamware;Password=viadante16; integrated security=False; MultipleActiveResultSets=True; App=Blazor.ServerApp;",
"Redis": "localhost:6379,DefaultDatabase=5,connectTimeout=5000,syncTimeout=5000,asyncTimeout=5000,abortConnect=false,ssl=false",
@@ -21,6 +20,13 @@
"redisLongTimeCache": 15,
"MpIoBaseUrl": "http://localhost/MP/IO/",
"MpIoNS": "MoonPro:SQL2016DEV:MoonPro",
"BasePathOdlReturn": "\\\\iis01\\W$\\Files\\ODL"
"BasePathOdlReturn": "\\\\iis01\\W$\\Files\\ODL",
"MimeMappings": {
".dxf": "application/octet-stream",
".utcfg": "application/octet-stream",
".utdata": "application/octet-stream",
".utprobe": "application/octet-stream",
".utwedge": "application/octet-stream"
}
}
}
+13 -2
View File
@@ -49,7 +49,6 @@
]
},
"AllowedHosts": "*",
"CodApp": "MP.SPEC",
"ConnectionStrings": {
"MP.Data": "Server=SQL2016DEV;Database=MoonPro; User ID=sa;Password=keyhammer16; integrated security=False; MultipleActiveResultSets=True; App=MP.SPEC;",
"MP.Inve": "Server=SQL2016DEV;Database=MoonPro_MAG; User ID=sa;Password=keyhammer16; integrated security=False; MultipleActiveResultSets=True; App=MP.SPEC;",
@@ -63,6 +62,18 @@
"redisLongTimeCache": "15",
"MpIoBaseUrl": "http://localhost:20967/",
"MpIoNS": "MoonPro:SQL2016DEV:MoonPro",
"BasePathOdlReturn": "\\\\iis01\\W$\\Files\\ODL"
"BasePathOdlReturn": "\\\\iis01\\W$\\Files\\ODL",
"MimeMappings": {
".dxf": "application/octet-stream",
".utcfg": "application/octet-stream",
".utdata": "application/octet-stream",
".utprobe": "application/octet-stream",
".utwedge": "application/octet-stream"
}
},
"SpecialConf": {
"AppUrl": "/MP/SPEC",
"CodApp": "MP-SPEC",
"CodModulo": "MP-SPEC"
}
}
+4 -1
View File
@@ -3,6 +3,7 @@ using Microsoft.Extensions.Options;
using MP.TaskMan.Controllers;
using MP.TaskMan.Models;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using NLog;
using StackExchange.Redis;
using System;
@@ -128,13 +129,15 @@ namespace MP.TaskMan.Services
{
var callResp = await RCallService.CallRestGet(TaskRec.Command, TaskRec.Args);
DateTime dtEnd = DateTime.Now;
string formattedJson = JValue.Parse(callResp.Content).ToString(Formatting.Indented);
TaskExecModel tExeMod = new TaskExecModel()
{
DtEnd = dtEnd,
DtStart = dtStart,
IsError = callResp.StatusCode != System.Net.HttpStatusCode.OK,
TaskId = TaskRec.TaskId,
Result = $"{callResp.Content}".Replace("\"", ""),
// deserializzazione come json indentato?!?
Result = formattedJson// $"{callResp.Content}".Replace("\"", ""),
};
// salvo su DB
answ = MLController.TaskExecSaveExecuted(TaskRec.TaskId, SchedNext, tExeMod);