Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Este artículo le ayuda a solucionar problemas de escenarios comunes en las aplicaciones de Durable Task Scheduler. Busque el escenario en la lista siguiente y siga los pasos vinculados para diagnosticar y resolver el problema.
Escenarios comunes
- Compruebe la cadena de conexión y el acceso al programador de tareas durables
- Error al implementar Durable Functions aplicación en Azure
- Error desconocido al recuperar detalles de este centro de tareas
- No se puede eliminar el recurso
- No se puede determinar el proyecto que se va a compilar
- No se pueden encontrar archivos binarios nativos para ARM (apple silicon)
Nota:
Los ingenieros de soporte técnico de Microsoft están disponibles para ayudar a diagnosticar problemas con la aplicación. Si no puede diagnosticar el problema después de pasar por este artículo, puede presentar una incidencia de soporte técnico; para ello, vaya a la sección Help>Support + troubleshooting del recurso Durable Task Scheduler en el portal de Azure.
Comprobar la cadena de conexión y el acceso al planificador de tareas duraderas
Cuando la aplicación no se ejecute según lo previsto, compruebe lo siguiente:
- El formato de la cadena de conexión es correcto.
- La autenticación está configurada correctamente.
Desarrollo local
Compruebe la cadena de conexión, que debe tener este formato:
Endpoint=http://localhost:<port number>;Authentication=None. Asegúrese de que el número de puerto es el asignado a8080en el contenedor que ejecuta el emulador del planificador de tareas duradero.Junto con el emulador del programador de tareas duraderas, asegúrese de que se inicie el emulador de Azure Storage, Azurite. Azurite es necesario para los componentes de la aplicación relacionados con Functions.
Ejecución en Azure
Compruebe la aplicación para ver las variables
DURABLE_TASK_SCHEDULER_CONNECTION_STRINGde entorno yTASKHUB_NAME.Compruebe el valor de
DURABLE_TASK_SCHEDULER_CONNECTION_STRING. En concreto, compruebe que el punto de conexión del programador y el tipo de autenticación son correctos. La cadena de conexión debe tener el formato siguiente al usar:-
Identidad administrada asignada por el usuario:
Endpoint={scheduler endpoint};Authentication=ManagedIdentity;ClientID={client id}, dondeclient ides el identificador de cliente de la identidad. -
Identidad administrada asignada por el sistema:
Endpoint={scheduler endpoint};Authentication=ManagedIdentity
-
Identidad administrada asignada por el usuario:
Asegúrese de que se concede el permiso de control de acceso basado en rol (RBAC) necesario a la identidad que necesita para acceder al centro de tareas o programador especificados.
- Al acceder al panel, asegúrese de que el permiso se asigna a su propia identidad (correo electrónico).
Si se usa la identidad administrada asignada por el usuario, asegúrese de que la identidad se asigna a la aplicación.
Error al implementar Durable Functions aplicación en Azure
Si se produce un error en la implementación, como Encountered an error (ServiceUnavailable) from host runtime desde Visual Studio Code, compruebe primero la aplicación para asegurarse de que las variables de entorno necesarias están configuradas correctamente. A continuación, vuelva a implementar la aplicación. Si ve un error al cargar funciones, seleccione el botón Actualizar .
Error desconocido al recuperar detalles de este centro de tareas
Si recibe un error Unknown error retrieving details of this task hub en el panel del programador de tareas duraderas, el motivo podría ser:
La identidad (correo electrónico) no tiene el permiso necesario asignado para esa central de tareas. Siga las instrucciones para conceder el permiso y, a continuación, vuelva a acceder al panel.
Se eliminó el hub de tareas.
No se puede eliminar el recurso
Para poder eliminar un recurso del programador, primero debe eliminar todos sus centros de tareas. Si no lo ha hecho, recibirá el siguiente mensaje de error:
{
"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."
}
}
Para resolverlo, enumere los centros de tareas en el programador y elimínelos:
# 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
Una vez eliminados todos los centros de tareas, vuelva a intentar eliminar el recurso del programador.
No se puede determinar el proyecto que se va a compilar
Si, después de iniciar Azurite, se produce el error: “Can't determine Project to build. Expected 1 .csproj or .fsproj but found 2”:
- Elimine los directorios bin y obj de la aplicación.
- Prueba a ejecutar
func startde nuevo.
No se pueden encontrar archivos binarios nativos para ARM (apple silicon)
Si ve errores de gRPC relacionados con no encontrar archivos binarios nativos para ARM (por ejemplo, en un Mac de silicio de Apple : M1, M2, etc.), agregue la siguiente solución alternativa al extensions.csproj archivo:
- Agregue una referencia de paquete a
Contrib.Grpc.Core.M1. - Agregue un destino después de la compilación personalizado que copie las bibliotecas nativas de gRPC de ARM64 en el directorio de salida correcto.
Agregue los siguientes elementos ItemGroup y Target a su 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>