Oharra
Baimena behar duzu orria atzitzeko. Direktorioetan saioa has dezakezu edo haiek alda ditzakezu.
Baimena behar duzu orria atzitzeko. Direktorioak alda ditzakezu.
Excepto en algunas operaciones descritas a continuación, todas las operaciones de datos que usan las clases de solicitud de ensamblado del SDK son sincrónicas.
La importación de una solución es una operación que puede requerir recursos considerables, por lo que hay una opción para ejecutar esta operación de forma asincrónica mediante la clase de ExecuteAsyncRequest solicitud. La DeleteAndPromoteRequest clase de solicitud realiza operaciones similares que consumen muchos recursos.
La importación de una solución mejora de forma asincrónica el rendimiento del sistema posponiendo la ejecución de mensajes hasta algún momento posterior en el que la carga del servidor puede ser menor. Los usuarios interactivos no tienen que esperar a que se ejecute el mensaje de destino para poder continuar. Esto resulta especialmente útil al importar soluciones que pueden tardar unos minutos o más en ejecutarse.
La combinación de filas con un gran número de actividades relacionadas u otros tipos de tabla también puede tardar mucho tiempo en actualizar todas las filas relacionadas, por lo que ejecutarlas en segundo plano puede mejorar la experiencia del usuario.
Nota:
ImportSolutionRequest, DeleteAndPromoteRequesty MergeRequest son las únicas clases de solicitud que se pueden usar con ExecuteAsyncRequest.
Use la ExecuteAsyncRequest clase de solicitud para ejecutar un mensaje de forma asincrónica. Configure la solicitud y pase la instancia de solicitud como argumento a IOrganizationService.Execute. ExecuteAsyncResponse devuelve el identificador del trabajo asincrónico. Puede consultar (opcionalmente) el trabajo mediante el identificador para averiguar su estado actual.
Puede usar la ExecuteMultipleRequest clase de solicitud para poner en cola varias soluciones que se importarán de forma asincrónica. Para ello, agregue una o varias ExecuteAsync solicitudes de mensaje a una ExecuteMultiple solicitud de mensaje. Debido a las restricciones de limitación de velocidad que mejoran el rendimiento general del sistema, para cada organización se permite ejecutar un único mensaje de forma asincrónica a la vez.
Para obtener más información sobre el ExecuteMultiple mensaje, consulte Ejecución de varias solicitudes mediante el SDK para .NET.
Example
En el ejemplo siguiente se muestra cómo usar la ExecuteAsyncRequest clase de solicitud de mensaje con la ImportSolutionRequest clase de solicitud de mensaje.
string ManagedSolutionLocation = @"C:\temp\ManagedSolutionForImportExample.zip";
byte[] fileBytes = File.ReadAllBytes(ManagedSolutionLocation);
ImportSolutionRequest impSolReq = new ImportSolutionRequest()
{
CustomizationFile = fileBytes
};
ExecuteAsyncRequest asyncReq = new ExecuteAsyncRequest()
{
Request = impSolReq
};
var asyncResp = (ExecuteAsyncResponse)svc.Execute(asyncReq);
Guid asyncOperationId = asyncResp.AsyncJobId;
A continuación, puede sondear la tabla AsyncOperation mediante el asyncOperationId valor del trabajo del sistema con el AsyncOperationId coincidente para detectar cuándo el valor statusCode indica si la operación se ha realizado correctamente (30), error (31) o se canceló (32).
Véase también
Usar mensajes con el SDK para .NET
Utilizar ExecuteTransaction
Ejecución de varias solicitudes mediante el SDK para .NET