#

Webserver Variablen global zur Verfügung stellen

 

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; }

 

Mobile

.

0123movie.net