REVISIÓN: Experimenta diversos problemas cuando usa Windows Workflow Foundation

Síntomas

En Microsoft Windows Workflow Foundation, puede experimentar uno de los siguientes problemas.

Problema 1

Cuando se descarga un flujo de trabajo después de que se produzca la persistencia, los temporizadores no se pueden reanudar.

Problema 2

Agregar una actividad personalizada anidada dentro de un flujo de trabajo. Sin embargo, cuando intenta volver a agregar la misma actividad, la actividad no se agrega al flujo de trabajo.

Problema 3

En Microsoft Office SharePoint Designer 2007, intenta definir flujos de trabajo que emplean acciones personalizadas. Las acciones personalizadas se definen en un ensamblado con un número de versión que se asemeja a un. b. c. d.. al hacer esto, puede recibir el siguiente mensaje de error:
El flujo de trabajo se han podido guardar pero no se puede ejecutar
El compilador da el motivo del error siguiente:
Ensamblado no está declarado como un tipo autorizado
El compilador muestra un mensaje que explica que la versión es incorrecta. Por ejemplo, el mensaje indica que la versión un. b. d. c no es correcta. Observe que se invierten los dos últimos dígitos de la versión.

Causa

Problema 1

Este problema se produce porque la operación de descarga cambia el estado de la cola del temporizador del flujo de trabajo. Sin embargo, la operación de descarga no establece el indicador de estado modificado en el flujo de trabajo. La cola del temporizador contiene un indicador booleano que se utiliza para comprobar si la cola del temporizador deberá registrarse de nuevo con el servicio programador cuando se reanuda el temporizador. Durante una operación de descarga, el valor de este valor booleano indicador cambia para indicar que el flujo de trabajo deberá registrarse de nuevo con el programador. No se puede guardar este cambio de valor de indicador si no se establece el indicador de estado modificado en el flujo de trabajo. Por lo tanto, cuando se produce una operación de descarga después de un punto de persistencia, la cola del temporizador no se les puede volver a registrar los temporizadores. Este comportamiento podría causar los temporizadores no reanudar.

Solución

Información de actualización

Ahora hay una actualización admitida de Microsoft Download Center. Para descargar esta actualización, visite el siguiente sitio Web de Microsoft:

Requisitos previos

No hay requisitos previos.

Requisito de reinicio

Aunque puede que no reciba un mensaje al final de la instalación, debe reiniciar el equipo después de aplicar este hotfix.

Información de archivo

La versión en inglés de esta revisión tiene los atributos de archivo (o atributos del archivo más reciente) mostrados en la tabla siguiente. Las fechas y horas de estos archivos se muestran en la hora Universal coordinada (UTC). Al ver la información del archivo, se convierte en hora local. Para encontrar la diferencia entre la hora UTC y la hora local, utilice la ficha Zona horaria en el elemento de Fecha y hora del Panel de control.
versiones de 32 bits
Nombre del archivoVersión del archivoTamaño de archivoFechaHora
System.workflow.activities.dll3.0.4203.2011,111,42420-Feb-200716:53
System.workflow.componentmodel.dll3.0.4203.2011,643,91220-Feb-200716:53
System.workflow.runtime.dll3.0.4203.201591,22420-Feb-200716:53
versiones de 64 bits
Nombre del archivoVersión del archivoTamaño de archivoFechaHora
System.workflow.activities.dll3.0.4203.2011,111,42420-Feb-200716:53
System.workflow.componentmodel.dll3.0.4203.2011,643,91220-Feb-200716:53
System.workflow.runtime.dll3.0.4203.201591,22420-Feb-200716:53

Solución alternativa

Problema 2

Para evitar este problema, siga estos pasos:
  1. Cierre el archivo .cs de WorkflowName.
  2. Vuelva a abrir el archivo .cs WorkflowName.
  3. Agregue las actividades personalizadas anidadas al archivo .cs WorkflowName.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Más información

Para obtener más información acerca de la terminología de la actualización de software, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

824684 descripción de la terminología estándar que se utiliza para describir las actualizaciones de software de Microsoft

Para obtener más información acerca de los temporizadores no reanudar una operación después de que se vuelve a cargar un flujo de trabajo, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

932394 un temporizador no reanuda operación después de un flujo de trabajo se recarga en Microsoft Windows Workflow Foundation

Pasos para reproducir el problema

Problema 1

  1. Crear un nuevo flujo de trabajo que contiene un objeto DelayActivity .
  2. Establezca la propiedad TimeoutDuration del objeto DelayActivity en cualquier momento en el futuro.
  3. Agregar un objeto SqlWorkflowPersistenceService que tiene el parámetro unloadOnIdle establecido en un valor de false.
  4. Antes de que caduque el objeto DelayActivity , conservar el flujo de trabajo y, a continuación, descargue explícitamente el flujo de trabajo.

    Nota: La operación de descarga no debería causar una persistencia de segundo, porque no se ha establecido el indicador de estado modificado.
  5. Volver a cargar el flujo de trabajo antes de que caduque el temporizador del objeto DelayActivity .

    Observe que el temporizador no se reanuda.

Problema 2

  1. Inicie Microsoft Visual Studio 2005.
  2. En el menú archivo, elija nuevo y, a continuación, haga clic en proyecto.
  3. Expanda Visual C#, haga clic en flujo de trabajo, haga clic en Aplicación de consola de flujo de trabajo secuencial, escriba WorkflowConsoleApplication1 en el cuadro nombre y, a continuación, haga clic en Aceptar.
  4. En el Explorador de soluciones, haga clic derecho en WorkflowConsoleApplication1, haga clic en Agregary, a continuación, haga clic en Nuevo elemento.
  5. Haga clic en actividad, escriba ParentActivity.cs en el cuadro nombre y, a continuación, haga clic en Agregar.
  6. En el Explorador de soluciones, haga clic derecho en WorkflowConsoleApplication1, haga clic en Agregary, a continuación, haga clic en Nuevo elemento.
  7. Haga clic en actividad, escriba ChildActivity.cs en el cuadro nombre y, a continuación, haga clic en Agregar.
  8. Agregar una actividad de CodeActivity a ChildActivity.cs.
  9. Haga doble clic en la actividad de CodeActivity que agregó en el paso 8 y, a continuación, agregue un controlador de código a la actividad CodeActivity .
  10. En el menú Generar, haga clic en Volver a generar solución.
  11. Agregar la actividad de ChildActivity que se crea en el paso 7 en el archivo ParentActivity.cs.
  12. En el menú Generar, haga clic en Volver a generar solución.
  13. Agregar la actividad de ParentActivity que creó en el paso 5 al archivo Workflow1.cs.
  14. Cambie el valor de la propiedad Name de la actividad de ParentActivity a testActivity.
  15. Agregue otra actividad de ParentActivity al archivo Workflow1.cs.
Propiedades

Id. de artículo: 932816 - Última revisión: 14 ene. 2017 - Revisión: 1

Comentarios