Frage

Ich arbeite mit DotNetNuke Scheduler Aufgaben zu planen und ich suche den physischen Dateipfad einer E-Mail-Vorlage zu erhalten, die ich erstellt. Das Problem ist, dass Httpcontext NULL ist, weil die geplante Aufgabe auf einem anderen Thread ist, und es ist nicht HTTP-Anfrage. Wie würden Sie gehen über die Akte der physischen Pfad zu bekommen?

War es hilfreich?

Lösung

System.Web.Hosting.HostingEnvironment. MapPath ist das, was Sie suchen. Jedes Mal, wenn Sie den Server oder HttpContext.Current Objekte verwenden, überprüfen Sie zuerst, ob Hostingenvironment hat, was Sie brauchen.

Andere Tipps

Es gibt viele Möglichkeiten, dies zu tun, ich persönlich um ihn herum zu erhalten, indem Pfadinformationen als Konfigurationsoption Speicher für meine Module, es ist nicht elegant ist, aber es funktioniert und jedes Mal funktioniert.

Joe Brinkman ich irgendwo um belive hat ein Blog-Posting, wie man einen neuen Httpcontext für den Einsatz in dem Scheduler zu konstruieren.

Da dieser Prozess wirklich out-of-Band in Bezug auf die Website ist, vielleicht können Sie nur den Weg stellen in einer Konfigurationsdatei.

nicht die beste Idee sein kann, aber es ist eine Alternative.

was sagt this.GetType (). Assembly.Location?

Können Sie bei der Versammlung Look & die Code-Basis Pfade wie folgt aus:

Imports System.Reflection
Imports System.IO
...
Path.GetDirectoryName( Assembly.GetExecutingAssembly().CodeBase ) 

Diese Art von Zeug funktioniert nicht immer, was so würde ich empfehlen, ein Protokoll mit einem Bündel von Daten über die Montag tun schreibe, um zu sehen, was in diesem Ort funktioniert. Es ist, was ich tun musste, etwas ähnliches zu bekommen, wenn ich eine COM-Komponente zu schaffen, in AppCenter gehostet werden. Ich verwenden, um diese „get“, was „APP_BASE“ sollte, und festgelegt, dass, so dass die Datei app.config richtig laden würde.

Log.Write ( Assembly.GetExecutingAssembly().CodeBase )
Log.Write ( Assembly.GetExecutingAssembly().Location )
Log.Write ( Path.GetFullPath(".") )
Log.Write ( Application.StartupPath )
... and so on, whatever you can think of ...
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top