Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł ułatwia rozwiązywanie problemów z typowymi scenariuszami w aplikacjach usługi Durable Task Scheduler. Znajdź swój scenariusz na poniższej liście i wykonaj połączone kroki, aby zdiagnozować i rozwiązać problem.
Typowe scenariusze
- Sprawdź ciąg połączenia i dostęp do harmonogramu Durable Task
- Error wdrażania aplikacji Durable Functions w Azure
- Nieznany błąd podczas pobierania szczegółów tego centrum zadań
- Nie można usunąć zasobu
- Nie można określić projektu do skompilowania
- Nie można odnaleźć natywnych plików binarnych dla ARM (Apple Silicon)
Uwaga / Notatka
Inżynierowie pomocy technicznej firmy Microsoft są dostępni, aby ułatwić diagnozowanie problemów z aplikacją. Jeśli nie możesz zdiagnozować problemu po przeczytaniu tego artykułu, możesz zgłosić zgłoszenie do pomocy technicznej, przechodząc do sekcji Help>Support + troubleshooting zasobu Durable Task Scheduler w portalu Azure.
Sprawdź łańcuch połączenia i dostęp do harmonogramu zadania Durable Task
Jeśli aplikacja nie jest uruchomiona zgodnie z oczekiwaniami, sprawdź następujące kwestie:
- Format parametry połączenia jest poprawny.
- Uwierzytelnianie jest poprawnie skonfigurowane.
Rozwój lokalny
Sprawdź parametry połączenia, które powinny mieć następujący format:
Endpoint=http://localhost:<port number>;Authentication=None. Upewnij się, że numer portu jest tym, który jest zamapowany na8080w kontenerze uruchamiającym emulator trwałego harmonogramu zadań.Wraz z trwałym emulatorem planowania zadań, sprawdź, czy emulator usługi Azure Storage, Azurite, został uruchomiony. Usługa Azurite jest wymagana w przypadku składników aplikacji związanych z usługą Functions.
Działanie na platformie Azure
Sprawdź aplikację pod kątem zmiennych środowiskowych
DURABLE_TASK_SCHEDULER_CONNECTION_STRINGiTASKHUB_NAME.Sprawdź wartość atrybutu
DURABLE_TASK_SCHEDULER_CONNECTION_STRING. W szczególności sprawdź, czy punkt końcowy harmonogramu i typ uwierzytelniania są poprawne. W przypadku korzystania z ciągu połączenia należy go sformatować w następujący sposób:-
Tożsamość zarządzana przypisana przez użytkownika:
Endpoint={scheduler endpoint};Authentication=ManagedIdentity;ClientID={client id}, gdzieclient idjest identyfikatorem klienta tożsamości. -
Tożsamość zarządzana przypisana przez system:
Endpoint={scheduler endpoint};Authentication=ManagedIdentity
-
Tożsamość zarządzana przypisana przez użytkownika:
Upewnij się, że wymagane uprawnienie kontroli dostępu opartej na rolach (RBAC) jest przyznawane tożsamości wymagającej dostępu do określonego centrum zadań lub harmonogramu.
- Podczas uzyskiwania dostępu do pulpitu nawigacyjnego upewnij się, że uprawnienia są przypisane do własnej tożsamości (adres e-mail).
Jeśli jest używana tożsamość zarządzana przypisana przez użytkownika, upewnij się, że tożsamość jest przypisana do aplikacji.
Błąd podczas wdrażania aplikacji Durable Functions w Azure
Jeśli wdrożenie zakończy się niepowodzeniem z powodu błędu takiego jak Encountered an error (ServiceUnavailable) from host runtime z programu Visual Studio Code, najpierw sprawdź aplikację, aby upewnić się, że wymagane zmienne środowiskowe są poprawnie ustawione. Następnie ponownie wdróż aplikację. Jeśli wystąpi błąd podczas ładowania funkcji, wybierz przycisk Odśwież .
Nieznany błąd podczas pobierania szczegółów tego centrum zadań
Jeśli wystąpi Unknown error retrieving details of this task hub błąd na konsoli trwałego harmonogramu zadań, przyczyną może być:
Twój identyfikator (e-mail) nie ma przypisanego wymaganego uprawnienia dla tego centrum zarządzania zadaniami. Postępuj zgodnie z instrukcjami, aby udzielić uprawnienia, a następnie ponownie uzyskaj dostęp do pulpitu nawigacyjnego.
Centrum zadań zostało usunięte.
Nie można usunąć zasobu
Aby można było usunąć zasób harmonogramu, należy najpierw usunąć wszystkie jego centra zadań. Jeśli tak nie jest, zostanie wyświetlony następujący komunikat o błędzie:
{
"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."
}
}
Aby rozwiązać ten problem, wyświetl listę centrów zadań w harmonogramie i usuń je:
# 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
Po usunięciu wszystkich centrów zadań spróbuj ponownie usunąć zasób harmonogramu.
Nie można określić projektu do skompilowania
Jeśli po uruchomieniu Azurite wystąpi błąd: : “Can't determine Project to build. Expected 1 .csproj or .fsproj but found 2”
- Usuń katalogi bin i obj w swojej aplikacji.
- Spróbuj uruchomić
func startponownie.
Nie można odnaleźć natywnych plików binarnych dla ARM (Apple Silicon)
Gdy zobaczysz błędy gRPC związane z brakiem natywnych plików binarnych dla architektury ARM (na przykład na komputerze Mac z procesorem Apple Silicon — M1, M2 itp.), dodaj następujące obejście problemu do pliku extensions.csproj :
- Dodaj odwołanie do pakietu
Contrib.Grpc.Core.M1. - Dodaj niestandardowy element docelowy po kompilacji, który kopiuje biblioteki natywne ARM64 gRPC do poprawnego katalogu wyjściowego.
Dodaj następujące elementy ItemGroup i Target do 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>