2016-11-10 6 views
0

Ich habe eine Net-Core-App läuft jetzt auf volle net452-Framework. Ich habe eine Datei (test.txt) in wwwroot eingefügt, auf die von den net452-Bibliotheken zugegriffen werden muss. Ich habe die Hosting-Umgebung injiziert und den Weg gefunden. System.IO.File.Exists (Pfad \ Dateiname) gibt jedoch False zurück und der DLL-Code gibt "Angegebene Datei existiert nicht" zurück. Die Datei existiert und der Pfad "C: \ Benutzer \ bbrown \ Source \ Repos \ MyRepo \ wwwroot \ test.txt" sieht korrekt aus. Ich bin zu 99% sicher, dass es ein Berechtigungsproblem ist. Eine direkte net452 App mit dem Pfad "C: \ Users \ bbrown \ Documents \ TestApp \ AppData \ test.txt" funktioniert.Dateizugriff in Net Core läuft auf Full Net Framework

Wie kann ich auf die Datei zugreifen oder zumindest das Problem beheben. Danke!

+0

Nun, was ist der Weg, den Sie versuchen zu finden, wird klar, es? Denken Sie daran, dass "IHostingEvironment.ContentRootPath" nicht "wwwroot" ist - es ist eine Ebene höher. –

Antwort

0

1) Stellen Sie sicher, dass Sie über die entsprechenden Berechtigungen für diesen Ordner verfügen. Gehe in diesen Ordner unter Sicherheit und überprüfe, ob du eine Berechtigung hast oder nicht. Wenn Sie IIS verwenden, stellen Sie sicher, dass Ihr Anwendungspoolbenutzer über eine Berechtigung für diesen Ordner verfügt.

2) _hostingEnvironment.ContentRootPath gibt Ihnen den Inhalt Root-Pfad, der den Ordner selbst bedeutet. Sie sollten _hostingEnvironment.WebRootPath verwenden, das Ihnen den Pfad des wwwroot-Ordners gibt.

Hier der schöne Blog, dass Ihre Zweifel https://blog.mariusschulz.com/2016/05/22/getting-the-web-root-path-and-the-content-root-path-in-asp-net-core

Verwandte Themen