Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hinweis
Microsoft-Supporttechniker stehen zur Verfügung, um Probleme mit Ihrer Anwendung zu diagnostizieren. Wenn Sie Ihr Problem nach dem Durchlaufen dieses Artikels nicht diagnostizieren können, können Sie ein Supportticket einreichen, indem Sie im Azure-Portal den Abschnitt "Hilfesupport>+ Problembehandlung " der Ressource für den dauerhaften Aufgabenplaner aufrufen.
Überprüfen der Verbindungszeichenfolge und des Zugriffs auf den langlebigen Aufgabenplaner
Wenn Ihre App nicht wie erwartet ausgeführt wird, überprüfen Sie zuerst, ob Sie folgendes haben:
- Das richtige Verbindungszeichenfolgenformat.
- Die Authentifizierung wurde ordnungsgemäß eingerichtet.
Lokale Entwicklung
Überprüfen Sie die Verbindungszeichenfolge, die dieses Format aufweisen soll:
Endpoint=http://localhost:<port number>;Authentication=None. Vergewissern Sie sich, dass die Portnummer der Nummer8080für den im Emulator des langlebigen Aufgabenplaners ausgeführten Container zugeordnet ist.Stellen Sie sicher, dass neben dem Emulator des langlebigen Aufgabenplaners auch der Azure Storage-Emulator Azurite gestartet wird. Azurite wird für Komponenten der App im Zusammenhang mit Funktionen benötigt.
Ausführen auf Azure
Überprüfen Sie Ihre App auf die Umgebungsvariablen
DURABLE_TASK_SCHEDULER_CONNECTION_STRINGundTASKHUB_NAME.Überprüfen Sie den Wert von
DURABLE_TASK_SCHEDULER_CONNECTION_STRING. Überprüfen Sie insbesondere, ob der Zeitplanendpunkt und der Authentifizierungstyp korrekt sind. Die Verbindungszeichenfolge sollte bei Verwendung wie folgt formatiert werden:-
Vom Benutzer zugewiesene verwaltete Identität:
Endpoint={scheduler endpoint};Authentication=ManagedIdentity;ClientID={client id}dabeiclient idhandelt es sich um die Client-ID der Identität. -
Vom System zugewiesene verwaltete Identität:
Endpoint={scheduler endpoint};Authentication=ManagedIdentity
-
Vom Benutzer zugewiesene verwaltete Identität:
Stellen Sie sicher, dass die erforderliche rollenbasierte Zugriffssteuerungsberechtigung (RBAC) der Identität gewährt wird, die für den Zugriff auf den angegebenen Aufgabenhub oder -planer erforderlich ist.
- Stellen Sie beim Zugriff auf das Dashboard sicher, dass Ihrer eigenen Identität (E-Mail) die Berechtigung zugewiesen ist.
Wenn vom Benutzer zugewiesene verwaltete Identität verwendet wird, stellen Sie sicher, dass die Identität Ihrer App zugewiesen ist.
Fehler beim Bereitstellen der Durable Functions-App in Azure
Wenn die Bereitstellung mit einem Fehler wie Encountered an error (ServiceUnavailable) from host runtime von Visual Studio Code fehlschlägt, überprüfen Sie zuerst Ihre App, um zu gewährleisten, dass die erforderlichen Umgebungsvariablen korrekt festgelegt sind. Stellen Sie ihre App dann erneut zur Anwendung. Wenn beim Laden von Funktionen ein Fehler angezeigt wird, klicken Sie auf die Schaltfläche "Aktualisieren".
Unbekannter Fehler beim Abrufen von Details dieses Aufgabenhubs
Wenn im Dashboard für den dauerhaften Vorgangsplaner ein Unknown error retrieving details of this task hub Fehler angezeigt wird, kann der Grund sein:
Ihre Identität (E-Mail-Adresse) verfügt nicht über die erforderliche Berechtigung für diesen Aufgabenhub. Folgen Sie den Anweisungen, um die Berechtigung zu erteilen, und greifen Sie dann erneut auf das Dashboard zu.
Ihr Aufgabenhub wurde gelöscht.
Ressource kann nicht gelöscht werden
Stellen Sie sicher, dass Sie alle Aufgabenhubs in der Umgebung des langlebigen Aufgabenplaners löschen. Falls nicht, wird die folgende Fehlermeldung angezeigt:
{
"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."
}
}
Das zu erstellende Projekt kann nicht bestimmt werden.
Wenn nach dem Starten der Azurite der Fehler auftritt: : “Can't determine Project to build. Expected 1 .csproj or .fsproj but found 2”
- Löschen Sie die Bin - und Obj-Verzeichnisse in Ihrer App.
- Versuchen Sie,
func starterneut auszuführen.
Systemeigene Binärdateien für ARM können nicht gefunden werden
Wenn gRPC-Fehler im Zusammenhang mit der Suche nach nativen Binärdateien für ARM (z. B. auf einem Mx Mac) auftreten, müssen Sie möglicherweise die folgende Problemumgehung am Ende der Datei extensions.csproj hinzufügen.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<WarningsAsErrors></WarningsAsErrors>
<DefaultItemExcludes>**</DefaultItemExcludes>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.DurableTask" Version="2.13.7" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.DurableTask.AzureManaged" Version="0.3.0-alpha" />
<PackageReference Include="Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator" Version="1.1.3" />
</ItemGroup>
<!-- Add the below groups/targets to workaround gRPC issues on ARM 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>
</Project>
Fehler bei der gRPC-Runtime
Für Benutzer von Mx Mac (ARM64) können möglicherweise gRPC-Laufzeitprobleme bei beständigen Funktionen auftreten. Als alternative Lösung:
Verweisen Sie auf die
2.41.0Version desContrib.Grpc.Core.M1NuGet-Pakets.Fügen Sie ein benutzerdefiniertes After-Build-Ziel hinzu, mit dem sichergestellt wird, dass die richtige ARM64-Version der gRPC-Bibliotheken gefunden wird.
<Project> <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> </Project>