2017-04-25 20 views
0

Ich möchte dies nicht als ein Problem/Bug auf der Git-Seite als ich stelle mir vor, ich bin einfach mit dem Paket falsch.ASP MVC Rotativa (wkhtmltopdf) zu Virtual Directory

Ich habe eine ASP MVC-Site auf IIS10 ausgeführt. Die tatsächliche Ordnerstruktur ist:

x:/ 
    library/ <-- Physical 
    Web Sites/ 
     Site A/ 
      Files/ <-- Virtual 
     Site B/ 
     Site C/ 

Und mit IIS10, ich habe einen virtuellen Ordner gemacht namens Dateien unter Standort A, von denen der physikalischen Pfad X:/library/(der Grund dafür ist, Ressourcen zu teilen zwischen Websites und den Inhalt außerhalb des Website-Pfades zu nehmen).

Benutzer können Dateien in/aus dem virtuellen Verzeichnis hochladen/herunterladen. Ich kann Bilder von dort auch ohne Problem laden.

Allerdings kann ich Rotativa nicht dazu bringen, aus meiner Anwendung in das virtuelle Verzeichnis zu schreiben. Offensichtlich sieht die Befehlszeile das virtuelle Verzeichnis sowieso nicht, aber das Erstellen einer Datei von cmd zum physischen Verzeichnis funktioniert gut.

aus der App aber:

X:/Web Sites/Files/Test.pdf Ergebnisse in Unable to write to destination
X:/library/Test.pdf Ergebnisse in Access to the path is denied (trotz bereits NETWORK SERVICE volle Kontrolle über die library Ordner und Unterordner zu geben)

Der Code ich verwende ist :

var pdf_output= new ActionAsPdf("Summary", new { id = id }) { 
     FileName = String.Format("Summary_{0}.pdf",id.ToString()), 
     CustomSwitches = "--print-media-type" 
     }; 
byte[] pdf_data= pdf_output.BuildPdf(ControllerContext); 
System.IO.File.WriteAllBytes(String.Format("xxx",id.ToString()), pdf_data); 

mit einer Vielzahl von Verzeichnispfadkombinationen in pl Ass von "xxx".

Hat jemand irgendwelche Erfahrung damit vorher, die mir zeigen könnte, wo ich falsch liege? Jede Hilfe würde sehr geschätzt werden.

Antwort

0

Macht nichts, löste es. Ich musste dem physischen Verzeichnis library die entsprechende Anwendungspool-Berechtigung erteilen, indem ich den Benutzer IIS AppPool\Site A hinzufügte.

Vielen Dank im Voraus, wenn jemand versucht zu untersuchen