Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Dit artikel helpt u bij het oplossen van veelvoorkomende scenario's in Durable Task Scheduler-apps. Zoek uw scenario in de volgende lijst en volg de gekoppelde stappen om het probleem vast te stellen en op te lossen.
Algemene scenario's
- Check verbindingsreeks en toegang tot Durable Task Scheduler
- Fout bij het implementeren van Durable Functions-app in Azure
- Onbekende fout bij het ophalen van details van deze taakhub
- Kan resource niet verwijderen
- Kan het project niet bepalen om te bouwen
- Kan geen systeemeigen binaire bestanden vinden voor ARM (Apple silicon)
Opmerking
Microsoft-ondersteuningstechnici zijn beschikbaar om problemen met uw toepassing te diagnosticeren. Als u uw probleem niet kunt vaststellen nadat u dit artikel hebt doorlopen, kunt u een ondersteuningsticket indienen door naar de sectie Help>Support + troubleshooting van de Durable Task Scheduler-resource in de Azure-portal te gaan.
Controleer de verbindingsreeks en toegang tot de Durable Task Scheduler
Wanneer uw app niet wordt uitgevoerd zoals verwacht, controleert u het volgende:
- De verbindingsreeks-indeling is juist.
- Authenticatie is correct ingesteld.
Lokale ontwikkeling
Controleer de verbindingsreeks, die deze indeling moet hebben:
Endpoint=http://localhost:<port number>;Authentication=None. Zorg ervoor dat het poortnummer het nummer is dat is toegewezen aan8080de container waarop de durable task scheduler-emulator wordt uitgevoerd.Zorg er samen met de durable task scheduler-emulator voor dat de Azure Storage-emulator, Azurite, is gestart. Azurite is nodig voor onderdelen van de app die betrekking hebben op Functions.
Wordt uitgevoerd op Azure
Controleer uw app op de omgevingsvariabelen
DURABLE_TASK_SCHEDULER_CONNECTION_STRINGenTASKHUB_NAME.Controleer de waarde van
DURABLE_TASK_SCHEDULER_CONNECTION_STRING. Controleer met name of het scheduler-eindpunt en het verificatietype juist zijn. De verbindingsreeks moet als volgt worden opgemaakt wanneer u het volgende gebruikt:-
Door de gebruiker toegewezen beheerde identiteit:
Endpoint={scheduler endpoint};Authentication=ManagedIdentity;ClientID={client id}, waarclient idis de client-id van de identiteit. -
Door het systeem toegewezen beheerde identiteit:
Endpoint={scheduler endpoint};Authentication=ManagedIdentity
-
Door de gebruiker toegewezen beheerde identiteit:
Zorg ervoor dat de vereiste RBAC-machtiging (op rollen gebaseerd toegangsbeheer) wordt verleend aan de identiteit die toegang nodig heeft tot de opgegeven taakhub of scheduler.
- Zorg er bij het openen van het dashboard voor dat de machtiging is toegewezen aan uw eigen identiteit (e-mail).
Als door de gebruiker toegewezen beheerde identiteit wordt gebruikt, controleert u of de identiteit is toegewezen aan uw app.
Fout bij het implementeren van Durable Functions app in Azure
Als uw implementatie mislukt met een fout zoals Encountered an error (ServiceUnavailable) from host runtime uit Visual Studio Code, controleert u eerst uw app om ervoor te zorgen dat de vereiste omgevingsvariabelen correct zijn ingesteld. Implementeer vervolgens uw app opnieuw. Als er een fout optreedt bij het laden van functies, selecteert u de knop Vernieuwen .
Onbekende fout bij het ophalen van details van deze taakhub
Als u een Unknown error retrieving details of this task hub fout krijgt op het dashboard van de durable task scheduler, kan dit de volgende reden zijn:
Aan uw identiteit (e-mail) is niet de vereiste machtiging toegewezen voor die taakhub. Volg de instructies om de machtiging te verlenen en open het dashboard opnieuw.
Uw taakhub is verwijderd.
Kan resource niet verwijderen
Voordat u een scheduler-resource kunt verwijderen, moet u eerst alle taakhubs verwijderen. Als u dat nog niet hebt gedaan, wordt het volgende foutbericht weergegeven:
{
"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."
}
}
U kunt dit oplossen door de taakhubs in de scheduler weer te geven en ze te verwijderen:
# 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
Nadat alle taakhubs zijn verwijderd, probeert u de scheduler-resource opnieuw te verwijderen.
Kan het project niet bepalen om te bouwen
Als u na het starten van Azurite de volgende fout tegenkomt: “Can't determine Project to build. Expected 1 .csproj or .fsproj but found 2”
- Verwijder de bin - en obj-mappen in uw app.
- Probeer
func startopnieuw uit te voeren.
Kan geen systeemeigen binaire bestanden vinden voor ARM (Apple silicon)
Als u gRPC-fouten ziet met betrekking tot het niet vinden van systeemeigen binaire bestanden voor ARM (zoals op een Apple silicon Mac — M1, M2, enzovoort), voegt u de volgende tijdelijke oplossing toe aan uw extensions.csproj bestand:
- Voeg een pakketreferentie toe aan
Contrib.Grpc.Core.M1. - Voeg een aangepast na-builddoel toe waarmee de systeemeigen ARM64 gRPC-bibliotheken worden gekopieerd naar de juiste uitvoermap.
Voeg de volgende ItemGroup en Target elementen toe aan uw 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>