Eine Datei in MVC 6 lesen

8

Ich möchte auf meine create.sql -Datei im Hauptordner meines Servers zugreifen. Es enthält Abfragen zum Einrichten meiner Datenbank. Ich habe ein Problem, auf diese Datei überhaupt zuzugreifen.

1) Ich kann nicht wirklich durch Configuration dorthin gelangen. Ich kann nur AddJsonFile , AddXmlFile und AddIniFile verwenden. Und ich denke, das ist nicht die beste Idee, um eine große SQL-Datei in eine davon zu bringen.

2) Mvc-Quelle auf github scheint MapPath zu fehlen. Also keine Möglichkeit, Server.MapPath("~/create.sql") zu benutzen.

Wie erreiche ich das dann?

    
Patryk Gołębiowski 04.06.2015, 23:49
quelle

2 Antworten

15

Wie bereits bemerkt und in den Kommentaren erwähnt, scheint es in ASP.NET VNext (MVC 6) kein MapPath zu geben. Ich habe den Workaround hier gefunden:

Ссылка

Grundsätzlich müssen Sie die ApplicationBasePath von IApplicationEnvironment -Schnittstelle, die derzeit als Dienst implementiert ist, unterhalb der folgenden Lösung abrufen:

%Vor%     
J. Lennon 06.06.2015, 09:40
quelle
5

Und anstatt IApplicationEnvironment zu injizieren, können Sie PlatformServices.Default.Application.ApplicationBasePath verwenden.

BEARBEITEN : Hier ist eine mögliche Implementierung von MapPath / UnmapPath als Erweiterungen von PlatformServices :

%Vor%

EDIT2 : Leicht modifiziert, IsPathMapped() hinzugefügt sowie einige Checks, um zu sehen, ob Pfad-Mapping / Unmapping wirklich benötigt wird.

%Vor%

EDIT3: PlatformServices.WwwRoot() gibt den tatsächlichen Ausführungspfad zurück und in .net core 2.0, DEBUG-Modus ist es xxx \ bin \ Debug \ netcoreapp2.0, was offensichtlich nicht erforderlich ist. Ersetzen Sie stattdessen PlatformServices durch IHostingEnvironment und verwenden Sie environment.WebRootPath .

    
Alexander Christov 17.02.2016 14:44
quelle