2016-07-04 4 views
2

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

0

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

erstellt
WebClient client = new WebClient(); 
client.DownloadData("yourhostaddress/writelog.aspx"); 
+1

Ich denke, dies ist für die meiste Arbeit wird Fälle –

1

Ü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.

+0

können Sie ein wenig mehr, in der realen Server erkläre ich nur Zugriff auf db und ftp –

Verwandte Themen