Zadanie odciążania programu Excel w pakiecie HPC Pack jest zablokowane
W tym artykule omówiono sposób rozwiązania zadania odciążania programu Excel pakietu Microsoft HPC Pack , które zostało zablokowane, aby można było pomyślnie użyć skoroszytu binarnego programu Excel (xlsb) do uruchomienia zadania w klastrze obliczeń o wysokiej wydajności (HPC) platformy Azure.
Symptomy
Przykładowe zadanie odciążania programu Excel pakietu HPC Pack zostaje zablokowane podczas jego działania, a program Excel zgłasza błędy związane z sesją. Raport przypomina następujący tekst błędu:
System.IO.IOException: znaleziono nieczytelną zawartość w skoroszycie. Sprawdź, <czy plik filename.xlsb> można otworzyć ręcznie. -->
System.Runtime.InteropServices.COMException: Wyjątek od 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)
--- koniec --- śledzenia stosu wyjątków wewnętrznych
Przyczyna
Nie uruchamiasz skoroszytu programu Excel w sesji interaktywnej użytkownika w węzłach obliczeniowych.
Rozwiązanie
Ustaw poprawną właściwość środowiska zadania w pliku rejestracji usługi programu Excel. Użyj zmiennej środowiskowej HPC_ATTACHTOSESSION lub HPC_CREATECONSOLE. Dzięki temu hosty usługi będą uruchamiane w interaktywnej sesji lub konsoli użytkownika. W węźle head plik rejestracji usługi programu Excel znajduje się w folderze %CCP_HOME%ServiceRegistration w pliku o nazwie Microsoft.Hpc.Excel.ExcelService_<version>.config.
Aby użyć HPC_ATTACHTOSESSION, utwórz sesję protokołu RDP (Remote Desktop Protocol) dla tego samego użytkownika RunAs w węzłach obliczeniowych. Aby użyć HPC_CREATECONSOLE, skonfiguruj węzły obliczeniowe przy użyciu kluczy rejestru i uruchom ponownie węzły przed uruchomieniem zadania.
Zalecamy używanie trybu uruchamiania konsoli w większości scenariuszy. Jest to szczególnie istotne, jeśli podczas uruchamiania zadania nie są wymagane żadne akcje interaktywne. Tryb uruchamiania konsoli pozwala również na ręczne skonfigurowanie protokołu RDP po ponownym uruchomieniu węzła. Aby uzyskać więcej informacji na temat szczegółowych konfiguracji węzłów, zobacz Uruchamianie poleceń w węzłach obliczeniowych w celu włączenia funkcji tworzenia konsoli.
Tło
Zazwyczaj istnieją dwa tryby, których można użyć do uruchomienia zadania odciążania programu Excel. Te tryby umożliwiają uruchamianie zadania w konsoli lub w sesji pulpitu zdalnego.
HPC_CREATECONSOLE: określenie tej zmiennej powoduje automatyczne utworzenie sesji konsoli po uruchomieniu zadania. Możesz ustawić tę zmienną na jedną z następujących wartości.
Value Efekt True
Usługa HPC Node Manager próbuje utworzyć sesję konsoli przy użyciu poświadczeń właściciela zadania. Tylko jeden użytkownik na węzeł może mieć sesję konsoli. Jeśli zadanie zakończy się pomyślnie, zostanie uruchomione w sesji konsoli. Jeśli nie można utworzyć sesji konsoli, zadanie zakończy się niepowodzeniem. Menedżer węzłów zamyka sesję konsoli na końcu zadania. Keep
Jeśli nie istnieje, zostanie utworzona nowa sesja konsoli logowania. W przeciwnym razie usługa HPC Node Manager dołącza zadanie do istniejącej sesji konsoli, a ta sesja konsoli nie zostanie zamknięta po zakończeniu zadania w węzłach obliczeniowych. HPC_ATTACHTOSESSION: określenie tej zmiennej powoduje uruchomienie zadania w istniejącej sesji pulpitu zdalnego. Ten scenariusz jest przydatny, jeśli spełnione są oba następujące warunki:
- Masz interaktywny program, który chcesz połączyć z sesją.
- Chcesz zdalnie wyświetlić program podczas jego działania.
Możesz ustawić tę zmienną na jedną z następujących wartości.
Value Efekt True
Usługa HARMONOGRAM ZADAŃ HPC próbuje uruchomić zadanie w sesji pulpitu zdalnego. Jeśli istnieje połączenie pulpitu zdalnego należące do użytkownika, który przesłał zadanie, zadanie zostanie uruchomione. Jeśli właściciel zadania nie jest właścicielem sesji pulpitu zdalnego, zadanie kończy się niepowodzeniem. Możesz uruchomić polecenie qwinsta w wierszu polecenia, aby wyświetlić listę sesji, które są obecnie aktywne na serwerze. Try
Zadanie próbuje dołączyć sesję i jest uruchamiane nawet wtedy, gdy nie może dołączyć do sesji.
Zmienne środowiskowe zadania nie są ustawiane automatycznie. W związku z tym należy ustawić je w pliku rejestracji usługi programu Excel. Aby uzyskać więcej informacji na temat odciążania uruchomionych trybów, zobacz Job or task environment variables for console or remote desktop sessions (Zmienne środowiskowe zadania lub zadania dla sesji konsoli lub pulpitu zdalnego).
Skontaktuj się z nami, aby uzyskać pomoc
Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii platformy Azure.