HPC Pack Excel-Auslagerungsauftrag ist angehalten
In diesem Artikel wird erläutert, wie Sie einen angehaltenen Microsoft HPC Pack Excel-Auslagerungsauftrag auflösen, sodass Sie erfolgreich eine binäre Excel-Arbeitsmappe (XLSB) verwenden können, um einen Auftrag in einem Hpc-Cluster (High Performance Computing) von Azure auszuführen.
Symptome
Ein Beispielauftrag für die HPC Pack Excel-Auslagerung bleibt hängen, während er ausgeführt wird, und Excel meldet sitzungsbezogene Fehler. Der Bericht ähnelt dem folgenden Fehlertext:
System.IO.IOException: Unlesbare Inhalte in der Arbeitsmappe gefunden. Vergewissern Sie sich, dass <dateiname.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 des --- für die ablaufverfolgung des inneren Ausnahmestapels
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. Dadurch können die Diensthosts in einer interaktiven Benutzersitzung oder Konsole ausgeführt werden. Auf dem Hauptknoten 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 (Remotedesktopprotokoll) 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 Konsolenausführungsmodus zu verwenden. Dies gilt insbesondere, wenn während der Ausführung des Auftrags keine interaktiven Aktionen erforderlich sind. Der Konsolenausführungsmodus spart Ihnen auch 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 Konsolenfunktion zum Erstellen von Konsolen.
Hintergrund
In der Regel gibt es zwei Modi, die Sie zum Ausführen eines Excel-Auslagerungsauftrags verwenden 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 Effekt True
Der HPC Node Manager-Dienst versucht, mithilfe der Anmeldeinformationen des Auftragsbesitzers eine Konsolensitzung zu erstellen. Nur ein Benutzer pro Knoten kann über eine Konsolensitzung verfügen. 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 nicht geschlossen, nachdem der Auftrag auf den Computeknoten abgeschlossen wurde. HPC_ATTACHTOSESSION: Wenn Sie diese Variable angeben, wird ein Auftrag in einer vorhandenen Remotedesktopsitzung gestartet. Dieses Szenario ist hilfreich, wenn die beiden folgenden Bedingungen zutreffen:
- Sie verfügen über 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 Effekt True
Der HPC Job Scheduler-Dienst 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 wird auch dann ausgeführt, wenn er nicht an die Sitzung angefügt werden kann.
Auftragsumgebungsvariablen werden nicht automatisch festgelegt. Daher müssen Sie sie in der Registrierungsdatei des Excel-Diensts festlegen. Weitere Informationen zum Auslagern ausgeführter Modi 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.