Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln hjälper dig att felsöka vanliga scenarier i Durable Task Scheduler-appar. Hitta ditt scenario i följande lista och följ de länkade stegen för att diagnostisera och lösa problemet.
Vanliga scenarier
- Kontrollera reťazec pripojenia och åtkomst till Durable Task Scheduler
- Fel vid distribution av Durable Functions-applikation till Azure
- Okänt fel vid hämtning av information om den här aktivitetshubben
- Det går inte att ta bort resursen
- Det går inte att fastställa vilket projekt som ska skapas
- Det går inte att hitta inbyggda binärfiler för ARM (Apple Silicon)
Anmärkning
Microsofts supporttekniker är tillgängliga för att diagnostisera problem med ditt program. Om du inte kan diagnostisera problemet när du har gått igenom den här artikeln kan du skicka ett supportärende genom att gå till avsnittet Help>Support + felsökning i resursen Durable Task Scheduler i Azure-portalen.
Kontrollera anslutningssträng och åtkomst till Durable Task Scheduler
När appen inte körs som förväntat kontrollerar du följande:
- Formatet reťazec pripojenia är korrekt.
- Autentiseringen är korrekt konfigurerad.
Lokal utveckling
Kontrollera anslutningssträngen, som ska ha det här formatet:
Endpoint=http://localhost:<port number>;Authentication=None. Kontrollera att portnumret är det som mappas till8080i containern som kör emulatorn för den varaktiga uppgiftsschemaläggaren.Se till att Azure Storage-emulatorn Azurite är startad tillsammans med den tillförlitliga uppgiftsschemaläggaremulatorn. Azurite behövs för komponenter i appen som är relaterade till Functions.
Körs på Azure
Kontrollera i din app om det finns miljövariablerna
DURABLE_TASK_SCHEDULER_CONNECTION_STRINGochTASKHUB_NAME.Kontrollera värdet för
DURABLE_TASK_SCHEDULER_CONNECTION_STRING. Mer specifikt kontrollerar du att scheduler-slutpunkten och autentiseringstypen är korrekta. Anslutningssträngen ska formateras på följande sätt när du använder:-
Användartilldelad hanterad identitet:
Endpoint={scheduler endpoint};Authentication=ManagedIdentity;ClientID={client id}, därclient idär identitetens klient-ID. -
Systemtilldelad hanterad identitet:
Endpoint={scheduler endpoint};Authentication=ManagedIdentity
-
Användartilldelad hanterad identitet:
Se till att den nödvändiga rollbaserade åtkomstkontrollbehörigheten (RBAC) beviljas den identitet som behöver åtkomst till den angivna aktivitetshubben eller schemaläggaren.
- När du öppnar instrumentpanelen kontrollerar du att behörigheten har tilldelats till din egen identitet (e-post).
Om användartilldelad hanterad identitet används kontrollerar du att identiteten har tilldelats till din app.
Det gick inte att distribuera Durable Functions app till Azure
Om distributionen misslyckas med ett fel, till exempel Encountered an error (ServiceUnavailable) from host runtime från Visual Studio Code, kontrollerar du först appen för att se till att de nödvändiga miljövariablerna har angetts korrekt. Distribuera om din app sedan. Om du ser ett fel vid inläsning av funktioner väljer du knappen Uppdatera .
Okänt fel vid hämtning av information om den här aktivitetshubben
Om du får ett Unknown error retrieving details of this task hub-fel på kontrollpanelen för den varaktiga schemaläggaren kan orsaken vara:
Din identitet (e-post) har inte den behörighet som krävs för aktivitetshubben. Följ anvisningarna för att bevilja behörigheten och få sedan åtkomst till instrumentpanelen igen.
Aktivitetshubben har tagits bort.
Det går inte att ta bort resursen
Innan du kan ta bort en scheduler-resurs måste du först ta bort alla dess aktivitetshubbar. Om du inte har gjort det får du följande felmeddelande:
{
"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."
}
}
Lös detta genom att lista aktivitetshubbarna i schemaläggaren och ta bort dem:
# 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
När alla aktivitetshubbar har tagits bort försöker du ta bort scheduler-resursen igen.
Det går inte att fastställa vilket projekt som ska skapas
Om du efter att ha startat Azurite får felet: “Can't determine Project to build. Expected 1 .csproj or .fsproj but found 2”
- Ta bort bin - och obj-katalogerna i din app.
- Försök att köra
func startigen.
Det går inte att hitta ursprungliga binärfiler för ARM (Apple Silicon)
Om du ser gRPC-fel som rör att inte hitta interna binärfiler för ARM (till exempel på en Apple Silicon Mac – M1, M2 osv.) lägger du till följande lösning i extensions.csproj filen:
- Lägg till en paketreferens till
Contrib.Grpc.Core.M1. - Lägg till ett anpassat mål efter kompilering som kopierar de inbyggda ARM64 gRPC-biblioteken till rätt utdatakatalog.
Lägg till följande ItemGroup och Target-element i din 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>