Ich muss alle 5 Minuten zwei Aufgaben in meinem ASP.NET C# -Projekt planen, eine ZIP-Datei erstellen und ein Protokoll hinzufügen. Ich habe Hangfire verwendet, um meine Aufgaben zu planen, und es funktioniert gut auf dem lokalen Server. Wenn ich es bereitstelle, funktioniert keiner von ihnen (zip oder log wird nicht erstellt). Als ich in das Hangfire-Dashboard sah, sah ich die create zip unter Scheduled
, create log ist unter Failed
und die Fehlermeldung ist System.UnauthorizedAccessException Access to the path is denied.
Ich schaute in this Frage und erstellte eine app.manifest
und fügte level="requireAdministrator"
hinzu. Aber das hat nicht geholfen.Hangfire funktioniert nicht im realen Server
Antwort
Versuchen Sie dies, schreiben Sie zuerst alle Methoden, die Sie benötigen, um auf einer neuen aspx-Seite zu laufen und diese Seite auszuführen, in Ihrem Fall schreiben Sie die Protokollfunktion auf einer Seite und führen Sie die von Ihnen erstellte Seite aus (zB writelog.aspx
). Wenn das Protokoll gedruckt wird, können Sie dies versuchen.
In Ihrem Zeitplan Anruffunktion, rufen Sie die Seite, die Sie
erstelltWebClient client = new WebClient();
client.DownloadData("yourhostaddress/writelog.aspx");
Überprüfen Sie die AppPool
, dass Ihre HangFire
Instanz ausgeführt wird. Stellen Sie sicher, dass die Identität AppPool
über die Berechtigung zum Zugriff auf die Ressource verfügt.
können Sie ein wenig mehr, in der realen Server erkläre ich nur Zugriff auf db und ftp –
Ich denke, dies ist für die meiste Arbeit wird Fälle –