Condividi tramite


Il processo di offload di Excel di HPC Pack è bloccato

Questo articolo illustra come risolvere un processo di offload di Excel di Microsoft HPC Pack bloccato in modo da poter usare correttamente una cartella di lavoro binaria di Excel (xlsb) per eseguire un processo in un cluster HPC (High Performance Computing) di Azure.

Sintomi

Un processo di offload di Excel hpC Pack di esempio si blocca durante l'esecuzione e Excel segnala errori correlati alla sessione. Il report è simile al testo di errore seguente:

System.IO.IOException: trovato contenuto illeggibile nella cartella di lavoro. Verificare che <filename.xlsb> possa essere aperto manualmente. -->

System.Runtime.InteropServices.COMException: Eccezione da HRESULT: 0x800A03EC

in 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)

in 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)

--- Fine dell'analisi dello stack di eccezioni interna ---

Causa

Non si esegue una cartella di lavoro di Excel in una sessione interattiva utente nei nodi di calcolo.

Soluzione

Impostare la proprietà corretta dell'ambiente del processo in un file di registrazione del servizio Excel. Usare la variabile di ambiente HPC_ATTACHTOSESSION o HPC_CREATECONSOLE. In questo modo gli host del servizio vengono eseguiti in una sessione interattiva dell'utente o in una console. Nel nodo head il file di registrazione del servizio Excel si trova nella cartella %CCP_HOME%ServiceRegistration in un file denominato Microsoft.Hpc.Excel.ExcelService_<version.config>.

Per usare HPC_ATTACHTOSESSION, creare una sessione RDP (Remote Desktop Protocol) per lo stesso utente RunAs nei nodi di calcolo. Per usare HPC_CREATECONSOLE, configurare i nodi di calcolo usando le chiavi del Registro di sistema e riavviare i nodi prima di eseguire il processo.

È consigliabile usare la modalità di esecuzione della console nella maggior parte degli scenari. Ciò vale soprattutto se non sono necessarie azioni interattive durante l'esecuzione del processo. La modalità di esecuzione della console consente anche di risparmiare il lavoro manuale per configurare RDP dopo il riavvio di un nodo. Per altre informazioni sulle configurazioni dettagliate dei nodi, vedere Eseguire comandi nei nodi di calcolo per abilitare la funzionalità di creazione della console.

Background

In genere, esistono due modalità che è possibile usare per eseguire un processo di offload di Excel. Queste modalità consentono di scegliere di eseguire il processo in una console o in una sessione desktop remoto.

  • HPC_CREATECONSOLE: se si specifica questa variabile, viene creata automaticamente una sessione della console all'avvio del processo. È possibile impostare questa variabile su uno dei valori seguenti.

    Valore Effetto
    True Il servizio Gestione nodi HPC tenta di creare una sessione della console usando le credenziali del proprietario del processo. Un solo utente per nodo può avere una sessione della console. Se il processo ha esito positivo, viene eseguito nella sessione della console. Se non è possibile creare la sessione della console, il processo ha esito negativo. Node Manager chiude la sessione della console alla fine del processo.
    Keep Se non esiste, viene creata una nuova sessione della console di accesso. In caso contrario, il servizio Gestione nodi HPC collega il processo alla sessione della console esistente e tale sessione della console non viene chiusa al termine del processo nei nodi di calcolo.
  • HPC_ATTACHTOSESSION: specificando questa variabile viene avviato un processo in una sessione desktop remoto esistente. Questo scenario è utile se entrambe le condizioni seguenti sono vere:

    • Si dispone di un programma interattivo che si vuole connettere alla sessione.
    • Si vuole visualizzare in remoto il programma mentre è in esecuzione.

    È possibile impostare questa variabile su uno dei valori seguenti.

    Valore Effetto
    True Il servizio Utilità di pianificazione processi HPC tenta di avviare il processo in una sessione desktop remoto. Se è presente una connessione Desktop remoto di proprietà dell'utente che ha inviato il processo, viene avviato il processo. Se il proprietario del processo non è proprietario di una sessione desktop remoto, il processo ha esito negativo. È possibile eseguire il comando qwinsta al prompt dei comandi per visualizzare un elenco di sessioni attualmente attive nel server.
    Try Il processo tenta di collegare la sessione ed è in esecuzione anche se non è in grado di collegarsi alla sessione.

Le variabili di ambiente del processo non vengono impostate automaticamente. Pertanto, è necessario impostarli nel file di registrazione del servizio Excel. Per altre informazioni sulle modalità di offload in esecuzione, vedere Variabili di ambiente di processi o attività per sessioni di console o desktop remoto.

Contattaci per ricevere assistenza

In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.