SSIS-Dateisystem Task Copy File Konnte einen Teil des Pfadfehlers nicht finden

7

Ich habe ein SSIS-Paket erstellt, das eine Dateisystemaufgabe (Kopie) verwendet, die eine Datei von einem Ordner in einen anderen kopiert. Das Paket läuft einwandfrei, wenn ich es von meinem lokalen Computer aus ausführe. Wenn ich das Paket jedoch in unseren SQL Server importiere und einen Job zum Ausführen des Pakets erstelle, schlägt das Paket fehl und im Protokoll wird der folgende Fehler angezeigt:

Started:  3:20:01 PM  
Error: 2013-03-27 15:20:01.70     
Code: 0xC002F304     
Source: copy template File System Task     
Description:
An error occurred with the following error message: 
    "Could not find a part of the path 
    'P:\IT\PROVIDERS\PROVIDERS AUDIT\File
    Template\QnxtProviderAuditList_yyyymmdd.xlsx'."  
End Error  
DTExec:
The package execution returned DTSER_FAILURE (1).  
Started:  3:20:01 PM  
Finished: 3:20:01 PM  
Elapsed:  0.452 seconds.  
The package execution failed.  The step failed.

Der Dateipfad im Fehler ist die Datei, die kopiert werden muss ( sourceconnection).

Ich kann den Dateipfad direkt aus dem Fehler kopieren und ihn (über den Windows Explorer) auf dem physischen SQL Server-Computer aufrufen, sodass ich nicht verstehe, warum das Paket angibt, dass der Pfad nicht gefunden werden konnte.

Hat jemand eine Idee, warum dieses Paket auf meinem lokalen Computer einwandfrei ausgeführt wird, aber mit dem obigen Fehler fehlschlägt, wenn es vom SQL Server ausgeführt wird? P:\ist ein freigegebenes Laufwerk, auf das der SQL Server Zugriff hat. Ich bezweifle, dass es sich um ein Zugriffs- / Berechtigungsproblem handelt.

Juan Velez
quelle

Antworten:

8

Zugeordnete Laufwerke P:\hängen , wie in Ihrem Fall, vom angemeldeten Benutzer ab. Nur weil Sie den Laufwerksbuchstaben sehen können, wenn Sie am Server angemeldet sind, bedeutet dies nicht, dass SQL Server den Laufwerksbuchstaben "sehen" kann. Wenn Sie den UNC-Namen (Universal Naming Convention) im Pfad angeben, anstatt den Laufwerksbuchstaben zu verwenden, und das von SQL Server verwendete Konto Zugriff auf die Freigabe und den Pfad hat, funktioniert dies.

Anstelle von P:\mypath\myfile.txtGebrauch\\machine\share\mypath\myfile.txt

Max Vernon
quelle
2

Wenn Sie das getan haben, was Max Vernon vorgeschlagen hat, stellen Sie sicher, dass Sie in Ihrer Skriptaufgabe den Vorgang "Datei umbenennen" verwenden (ja, Sie werden die Datei verschieben). Geben Sie hier die Bildbeschreibung ein

Khurram Solemon
quelle
1
Hinweis: Wenn Personen über Antworten abstimmen oder andere Antworten hinzufügen, können Sie nicht davon ausgehen, dass die Antwort, auf die Sie sich beziehen, immer noch offensichtlich ist, wenn Sie sie nur als "oben" bezeichnen. Ich empfehle Ihnen, der Klarheit halber andere Antworten mit dem Benutzernamen des Antwortenden zu notieren.
RDFozz
Verdammt! Danke, dass du mir Stunden gespart hast! Warum Umzüge umbenennen? Jesus Microsoft, warum tun Sie uns das an
Maskenüberlauf