Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo aiuta a risolvere i problemi comuni nelle applicazioni del programma "Durable Task Scheduler". Trovare lo scenario nell'elenco seguente e seguire i passaggi collegati per diagnosticare e risolvere il problema.
Scenari comuni
- Controlla la stringa di connessione e l'accesso al Durable Task Scheduler
- Errore di distribuzione dell'app Durable Functions in Azure
- Errore sconosciuto durante il recupero dei dettagli dell'hub delle attività
- Non è possibile eliminare la risorsa
- Non è possibile determinare il progetto da compilare
- Non è possibile trovare file binari nativi per ARM (processore Apple)
Annotazioni
I tecnici del supporto Tecnico Microsoft sono disponibili per diagnosticare i problemi relativi all'applicazione. Se non è possibile diagnosticare il problema dopo aver eseguito questo articolo, è possibile inviare un ticket di supporto passando alla sezione Help>Support + troubleshooting della risorsa Utilità di pianificazione attività permanenti nel portale di Azure.
Controllare stringa di connessione e accedere a Durable Task Scheduler
Quando l'app non è in esecuzione come previsto, verificare quanto segue:
- Il formato stringa di connessione è corretto.
- L'autenticazione è configurata correttamente.
Sviluppo locale
Controllare la stringa di connessione, che deve avere questo formato:
Endpoint=http://localhost:<port number>;Authentication=None. Verificare che il numero di porta sia quello associato a8080nel contenitore che esegue l'emulatore del pianificatore delle attività durevoli.Insieme all'emulatore del pianificatore di attività durevole, assicurarsi che sia avviato l'emulatore di Archiviazione di Azure, Azurite. Azurite è necessario per i componenti dell'app correlata a Funzioni.
Funzionamento su Azure
Controlla che nell'app ci siano le variabili di ambiente
DURABLE_TASK_SCHEDULER_CONNECTION_STRINGeTASKHUB_NAME.Controllare il valore di
DURABLE_TASK_SCHEDULER_CONNECTION_STRING. In particolare, verificare che l'endpoint del pianificatore e il tipo di autenticazione siano corretti. La stringa di connessione deve essere formattata come segue quando si usa:-
Identità gestita assegnata dall'utente:
Endpoint={scheduler endpoint};Authentication=ManagedIdentity;ClientID={client id}, doveclient idè l'ID client dell'identità. -
Identità gestita assegnata dal sistema:
Endpoint={scheduler endpoint};Authentication=ManagedIdentity
-
Identità gestita assegnata dall'utente:
Assicurarsi che l'autorizzazione necessaria per il controllo degli accessi in base al ruolo (RBAC) sia concessa all'identità che deve accedere all'hub delle attività o al pianificatore specificato.
- Quando si accede al dashboard, verificare che l'autorizzazione sia assegnata alla propria identità (indirizzo di posta elettronica).
Se viene usata l'identità gestita assegnata dall'utente, assicurarsi che l'identità sia assegnata all'app.
Errore durante la distribuzione dell'app Durable Functions in Azure
Se la distribuzione ha esito negativo e viene visualizzato un errore, Encountered an error (ServiceUnavailable) from host runtime ad esempio da Visual Studio Code, controllare prima di tutto l'app per assicurarsi che le variabili di ambiente necessarie siano impostate correttamente. Quindi ridistribuire l'app. Se viene visualizzato un errore durante il caricamento delle funzioni, selezionare il pulsante Aggiorna .
Errore sconosciuto durante il recupero dei dettagli dell'hub attività
Se viene visualizzato un errore Unknown error retrieving details of this task hub nella dashboard del pianificatore di attività durevole, il motivo potrebbe essere:
L'identità (e-mail) non ha l'autorizzazione necessaria assegnata per l'hub attività. Seguire le istruzioni per concedere l'autorizzazione, quindi accedere di nuovo al dashboard.
Il tuo centro attività è stato eliminato.
Non è possibile eliminare la risorsa
Prima di poter eliminare una risorsa del pianificatore, è necessario prima eliminare tutti gli hub di attività. Se non l'hai fatto, ricevi il seguente messaggio di errore:
{
"error": {
"code": "CannotDeleteResource",
"message": "Cannot delete resource while nested resources exist. Some existing nested resource IDs include: 'Microsoft.DurableTask/schedulers/YOUR_SCHEDULER/taskhubs/YOUR_TASKHUB'. Please delete all nested resources before deleting this resource."
}
}
Per risolvere il problema, elencare gli hub attività nel pianificatore ed eliminarli.
# List all task hubs in the scheduler
az durabletask taskhub list --resource-group RESOURCE_GROUP_NAME --scheduler-name SCHEDULER_NAME
# Delete each task hub
az durabletask taskhub delete --resource-group RESOURCE_GROUP_NAME --scheduler-name SCHEDULER_NAME --name TASKHUB_NAME
Dopo l'eliminazione di tutti gli hub di attività, riprovare a eliminare la risorsa del pianificatore.
Non è possibile determinare il progetto da compilare
Se, dopo l'avvio di Azurite, si verifica l'errore: : “Can't determine Project to build. Expected 1 .csproj or .fsproj but found 2”
- Eliminare le directory bin e obj nell'app.
- Prova a eseguire
func startdi nuovo.
Non è possibile trovare file binari nativi per ARM (processore Apple)
Se vengono visualizzati errori gRPC correlati alla mancata ricerca di file binari nativi per ARM (ad esempio in un mac in processore Apple - M1, M2 e così via), aggiungere la soluzione alternativa seguente al extensions.csproj file:
- Aggiungere un riferimento al pacchetto a
Contrib.Grpc.Core.M1. - Aggiungere una destinazione personalizzata dopo la compilazione che copia le librerie native ARM64 gRPC nella directory di output corretta.
Aggiungi i seguenti elementi ItemGroup e Target a extensions.csproj.
<!-- Workaround for gRPC issues on ARM (Apple silicon) devices -->
<ItemGroup>
<PackageReference Include="Contrib.Grpc.Core.M1" Version="2.41.0" />
</ItemGroup>
<Target Name="CopyGrpcNativeAssetsToOutDir" AfterTargets="Build">
<ItemGroup>
<NativeAssetToCopy Condition="$([MSBuild]::IsOSPlatform('OSX'))" Include="$(OutDir)runtimes/osx-arm64/native/*"/>
</ItemGroup>
<Copy SourceFiles="@(NativeAssetToCopy)" DestinationFolder="$(OutDir).azurefunctions/runtimes/osx-arm64/native"/>
</Target>