HPC Pack Excel-Auslagerungsauftrag ist angehalten
In diesem Artikel wird erläutert, wie Sie einen Microsoft HPC Pack Excel-Offloadingauftrag auflösen, der angehalten ist, damit Sie eine Excel-Binärarbeitsmappe (XLSB) erfolgreich verwenden können, um einen Auftrag in einem Azure High-Performance Computing (HPC)-Cluster auszuführen.
Symptome
Ein Beispiel für einen HPC Pack Excel-Auslagerungsauftrag bleibt hängen, während er ausgeführt wird, und Excel meldet sitzungsbezogene Fehler. Der Bericht ähnelt dem folgenden Fehlertext:
System.IO.IOException: Nicht lesbarer Inhalt in der Arbeitsmappe gefunden. Vergewissern Sie sich, dass <"filename.xlsb>" manuell geöffnet werden kann. -->
System.Runtime.InteropServices.COMException: Ausnahme von HRESULT: 0x800A03EC
at Microsoft.Office.Interop.Excel.Workbooks.Open(String Filename, Object UpdateLinks, Object ReadOnly, Object Format, Object Password, Object WriteResPassword, Object IgnoreReadOnlyRecommended, Object Origin, Object Delimiter, Object Editable, Object Notify, Object Converter, Object AddToMru, Object Local, Object CorruptLoad)
at Microsoft.Hpc.Excel.ExcelDriver.OpenWorkbookInternal(String filePath, Boolean updateLinks, Boolean enableMacros, String password, String writeResPassword, Nullable'1 lastSaveDate)
at Microsoft.Hpc.Excel.ExcelDriver.OpenWorkbook(String filePath, Boolean updateLinks, String password, String writeResPassword, Nullable'1 lastSaveDate)
--- Ende der inneren Ausnahme für Stapelüberwachung ---
Ursache
Sie führen keine Excel-Arbeitsmappe in einer interaktiven Benutzersitzung auf Computeknoten aus.
Lösung
Legen Sie die richtige Auftragsumgebungseigenschaft in einer Excel-Dienstregistrierungsdatei fest. Verwenden Sie die Umgebungsvariable HPC_ATTACHTOSESSION oder HPC_CREATECONSOLE. Auf diese Weise können die Diensthosts in einer interaktiven Benutzersitzung oder Konsole ausgeführt werden. Auf dem Kopfknoten befindet sich die Excel-Dienstregistrierungsdatei im Ordner "%CCP_HOME%ServiceRegistration" in einer Datei mit dem Namen Microsoft.Hpc.Excel.ExcelService_<version.config>.
Um HPC_ATTACHTOSESSION zu verwenden, erstellen Sie eine RDP-Sitzung (Remote Desktop Protocol) für denselben RunAs-Benutzer auf den Computeknoten. Um HPC_CREATECONSOLE zu verwenden, konfigurieren Sie die Computeknoten mithilfe von Registrierungsschlüsseln, und starten Sie die Knoten neu, bevor Sie den Auftrag ausführen.
Es wird empfohlen, in den meisten Szenarien den Modus für die Ausführung der Konsole zu verwenden. Dies gilt insbesondere, wenn keine interaktiven Aktionen erforderlich sind, während der Auftrag ausgeführt wird. Der Konsolenausführungsmodus speichert außerdem den manuellen Aufwand zum Einrichten von RDP nach einem Knotenneustart. Weitere Informationen zu detaillierten Knotenkonfigurationen finden Sie unter Ausführen von Befehlen auf Computeknoten zum Aktivieren der Konsolenfunktionalität.
Hintergrund
In der Regel gibt es zwei Modi, mit denen Sie einen Excel-Offloadingauftrag ausführen können. Mit diesen Modi können Sie ihren Auftrag entweder in einer Konsole oder in einer Remotedesktopsitzung ausführen.
HPC_CREATECONSOLE: Wenn Sie diese Variable angeben, wird beim Starten des Auftrags automatisch eine Konsolensitzung erstellt. Sie können diese Variable auf einen der folgenden Werte festlegen.
Wert Auswirkung True
Der HPC Node Manager-Dienst versucht, eine Konsolensitzung mithilfe der Anmeldeinformationen des Auftragsbesitzers zu erstellen. Pro Knoten kann nur ein Benutzer eine Konsolensitzung haben. Wenn der Auftrag erfolgreich ist, wird er in der Konsolensitzung ausgeführt. Wenn die Konsolensitzung nicht erstellt werden kann, schlägt der Auftrag fehl. Der Knoten-Manager schließt die Konsolensitzung am Ende des Auftrags. Keep
Wenn keine vorhanden ist, wird eine neue Anmeldekonsolensitzung erstellt. Andernfalls fügt der HPC Node Manager-Dienst den Auftrag an die vorhandene Konsolensitzung an, und diese Konsolensitzung wird nach Abschluss des Auftrags auf den Computeknoten nicht geschlossen. HPC_ATTACHTOSESSION: Wenn Sie diese Variable angeben, wird ein Auftrag in einer vorhandenen Remotedesktopsitzung gestartet. Dieses Szenario ist hilfreich, wenn beide der folgenden Bedingungen zutreffen:
- Sie haben ein interaktives Programm, das Sie mit der Sitzung verbinden möchten.
- Sie möchten das Programm remote anzeigen, während es ausgeführt wird.
Sie können diese Variable auf einen der folgenden Werte festlegen.
Wert Auswirkung True
Der HPC-Auftragsplanungsdienst versucht, den Auftrag in einer Remotedesktopsitzung zu starten. Wenn eine Remotedesktopverbindung vorhanden ist, die dem Benutzer gehört, der den Auftrag übermittelt hat, wird der Auftrag gestartet. Wenn der Auftragsbesitzer keine Remotedesktopsitzung besitzt, schlägt der Auftrag fehl. Sie können den Befehl qwinsta an einer Eingabeaufforderung ausführen, um eine Liste der Sitzungen anzuzeigen, die derzeit auf Ihrem Server aktiv sind. Try
Der Auftrag versucht, die Sitzung anzufügen und ausgeführt zu werden, auch wenn er nicht an die Sitzung angefügt werden kann.
Auftragsumgebungsvariablen werden nicht automatisch festgelegt. Daher müssen Sie sie in der Excel-Dienstregistrierungsdatei festlegen. Weitere Informationen zum Entladen von Ausführungsmodi finden Sie unter Auftrags- oder Aufgabenumgebungsvariablen für Konsolen- oder Remotedesktopsitzungen.
Kontaktieren Sie uns für Hilfe
Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.