2017-11-24 1 views
0

enter image description here Ich habe ein geplantes Projekt, das vom SQL Server-Agent ausgeführt wird. Es enthält mehrere Pakete. Eines der Pakete enthält die Skriptaufgabe, die meine API auf Azure deployed aufruft. Dieser gesamte Prozess wird auf einer virtuellen Maschine ausgeführt.SSIS-Skript-Task schlägt bei Ausführung aus SQL-Agent fehl. Funktioniert einwandfrei, wenn sie einzeln ausgeführt wird.

Wenn dieser Prozess vom Agenten gemäß dem Zeitplan ausgeführt wird, wird ein Fehler ausgegeben (Ausnahme wurde von der Zielmethode des Aufrufs ausgelöst), wie im Screenshot gezeigt. Aber wenn ich diesen Prozess in VS manuell ausführen, funktioniert es gut (auch wenn ich ein bestimmtes Paket aus IS-Katalogen ausführen, funktioniert es gut). Ich habe versucht, die letzte Aussage meiner API einzuloggen. Es hat gut funktioniert. Es hat bis zur letzten Aussage ohne irgendein Problem ausgeführt.

Ich ging durch viele Links ähnlich wie SSIS Script Task Fails when run from SQL Agent, aber erreichte nicht die Lösung.

Kann mir jemand helfen? Danke im Voraus.

+0

Es gibt keinen Screenshot. Und außerdem ... nehmen Sie sich bitte die Zeit, den Fehlertext in Ihre Frage zu stellen, damit er durchsucht werden kann. Abgesehen davon, schauen Sie bitte in den SSIS-Logs für mehr Details –

+0

@ Nick.McDermaid Hinzugefügt den Screenshot und den Fehlertext. – Pavvy

+0

Ändern Sie vorübergehend das SQL Agent-Dienstkonto in einen lokalen Administrator und überprüfen Sie, ob das Problem dadurch behoben wird. Wenn das Problem behoben wird, müssen Sie eingrenzen und herausfinden, wo das Sicherheitsproblem besteht. Zum Beispiel benötigen Skriptaufgaben Schreibzugriff auf 'C: \ WINDOWS \ TEMP', um –

Antwort

0

Nachdem ich so viele Stunden damit verbracht habe, das Problem zu verstehen, habe ich die Lösung meines eigenen Problems gefunden. Es gibt einige Einschränkungen bei der Verwendung von Skriptaufgaben in SSIS. Die API, die ich von ihr aufruft, benötigt zu viel Zeit, um den Skript-Task zu veranlassen, die asynchrone Thread-Ausführung zu beenden. Nach dem es fehlgeschlagen Status zurückgegeben wurde. (Dieses Problem trat im Debug-Modus nicht auf.) Dann habe ich versucht, die Sync-Methode zu verwenden, indem Sie HttpClientConnection verwenden, aber es ist eine große Einschränkung ist Timeout-Limit. Wir können maximal 5 Minuten für jeden Anruf festlegen.

Schließlich habe ich diese API in mehrere Aufgaben aufgeteilt, um die Timeouts zu entfernen, die mein Problem gelöst haben. Vielen Dank.

Verwandte Themen