Azure-Funktions-App verweist auf ein webApi
-Projekt, das razorEngine
verwendet, um cshtml
view zu erstellen.
Das Problem ist der Zugriff auf die cshtml-Datei. Bis jetzt benutzte ich:
HostingEnvironment.MapPath("~/Views/templates/") + "test.cshtml";
um auf die Datei zuzugreifen, die früher als eigenständiges Projekt mit webApi verwendet wurde. Jetzt wird der Pfad als referenzierte Assembly mit
ausgewertet E:\Web\Proj.Func\bin\Debug\net461\test.cshtml
was nicht der richtige Pfad zur cshtml
Datei ist.
Wie löst man das?
Wenn Sie ein Web-API-Projekt als Referenz zu einem anderen Projekt hinzufügen und es wie eine Klassenbibliothek verwenden, funktioniert HostingEnvironment.MapPath
nicht. Tatsächlich ist der api-Controller nicht mehr gehostet und HostingEnvironment.IsHosted
ist falsch.
Als eine Option können Sie den Code schreiben, um die Datei wie folgenden Code zu finden, dann wird der Code in beiden Fällen funktionieren, wenn es als Web-API gehostet wird oder wenn es als Klassenbibliothek verwendet wurde.
Vergessen Sie nicht, die Dateien in das Ausgabeverzeichnis aufzunehmen, damit sie in die Nähe des Ordners bin des Azure-Funktionsprojekts kopiert werden.
%Vor%Und hier ist die Funktion:
%Vor%Tags und Links asp.net-web-api azure c# azure-functions