Readdy Write  
0,00 €
Your View Money
Views: Count
Self 20% 0
Your Content 60% 0

Users by Links 0
u1*(Content+Views) 10% 0
Follow-Follower 0
s2*(Income) 5% 0

Count
Followers 0
Login Register as User

Webserver Variablen global zur Verfügung stellen

28.07.2021 (­čĹü884)


Wie kann man die lokalen Verzeichnisse eines Webservers als WebHostEnvironment in einer statischen Klasse zur Verf├╝gung stellen oder abrufen.

Anleitung:

Hierzu muss man eine public static class MyServer mit einer statischen Eigenschaft wie WebHostEnvironment erstellen. Diese Eigenschaft oder Variable muss im Startup eingestellt werde und steht dann immer zur Verf├╝gung

Erstellen einer Static Class mit der WebHostEnvironment

using Microsoft.AspNetCore.Hosting;

 

public static class MyServer

{

         public static IWebHostEnvironment WebHostEnvironment { get; set; }

 

}

 

Startup.cs  erweitern

Damit die Umgebungsvariable zur Laufzeit zur Verf├╝gung steht, muss die IWebHostEnvironment im Startup->Configure(..) ├╝bergeben werden.

Startup.cs mit Environment Variable

Hier die IWebHostEnvironment env direkt beim Aufruf als DependencyInjection ├╝bergeben.

 

public Startup(IConfiguration configuration, IWebHostEnvironment env)

{

    Configuration = configuration;

    _env = env;

}

 

public IConfiguration Configuration { get; }

private readonly IWebHostEnvironment _env;

Server Verzeichnis abfragen

*In einer statischen Klasse

Anschlie├čend kann aus jeder Klasse heraus die allgemeine Umgebung abgefragt werden wie hier

string sPath_FFMpegDir =  MyServer.WebHostEnvironment.ContentRootPath + @"\bin\FFMpeg\";

 

 

using System.Diagnostics;   //ProcessStartInfo

 

public static class Video_Methods

{

    public static void Video_create_Thumbnail(string sInputFile, string sOutputFile, string sPath_FFMpeg)

    {

        //---------------< Video_create_Thumbnail() >---------------

        string sPath_FFMpegDir =  MyServer.WebHostEnvironment.ContentRootPath + @"\bin\FFMpeg\";

        var startInfo = new ProcessStartInfo

        { 

            FileName = sPath_FFMpegDir + $"ffmpeg.exe",

            Arguments = $"-i " + sInputFile + " -an -vf scale=200x112 " + sOutputFile + " -ss 00:00:00 -vframes 1",

            CreateNoWindow=true,

            UseShellExecute=false,

            WorkingDirectory=sPath_FFMpegDir

        };

 

        using (var process=new Process { StartInfo=startInfo})

        {

            process.Start();

            process.WaitForExit();

        }

        //---------------</ Video_create_Thumbnail() >---------------

    }

 

}

Standard Startup.cs ohne Hosting Environment

public Startup(IConfiguration configuration)

{

    Configuration = configuration;

}

 

public IConfiguration Configuration { get; }