2010-08-12 37 views
6

Necesito cargar y ejecutar paquetes SSIS o DTS ASINCRONOSAMENTE desde la página ASP.NET C# al hacer clic en un botón e informar el éxito o falla al final de la ejecución y si falla, los detalles de la excepción deben mostrarse al usuario. necesita ser asincrónico porque el trabajo puede tardar mucho tiempo en finalizar. el usuario también debería poder cancelar la ejecución del paquete mientras se está ejecutando si así lo desea. también es necesario ejecutar múltiples paquetes en paralelo y seguir el progreso de cada uno de ellos. ¿Es esto posible O demasiado complicado para hacerlo desde ASP.NET? Avíseme si tiene algún código de muestra o enlaces que hagan esto. Gracias por adelantado.ejecutar paquete SSIS o DTS de forma asincrónica desde ASP.NET

+0

Si tiene más de un grupo, necesita una tabla de base de datos común y una clase separada para manejar esta ejecución en paralelo con todo lo que solicite. No es una tarea fácil, tenemos uno así, pero tenemos muchas horas de trabajo y es muy personalizado. – Aristos

Respuesta

1

Lo resolví haciendo una cola de las solicitudes del usuario para la ejecución del paquete DTS/SSIS en una tabla y leyéndolas en un servicio de Windows y ejecutándolas en paralelo al generar subprocesos usando la clase ThreadPool. está funcionando bien Gracias. El inconveniente de este enfoque es la votación, para que sea un evento impulsado, crear un servicio WCF y alojarlo en un servicio de Windows sería lo mejor que intentaré a continuación. Gracias por todas sus respuestas. Por cierto, no puedo usar el agente de servidor SQL, no está permitido según la política de TI de mi empresa.

1

Una solución que puede considerar es utilizar trabajos SQLServer. Puede configurar los paquetes como trabajos con o sin un calendario de ejecución. Puede iniciar, cancelar, obtener el estado del trabajo y obtener información de fallas ejecutando procedimientos almacenados y consultas en la base de datos del sistema msdb. Puede ejecutar los procedimientos y consultas desde su página ASP.NET C#.

La ejecución de paquetes SSIS/DTS en trabajos es un enfoque común. Y esta solución le permitiría usar Management Studio para administrar los trabajos también.

+0

gracias por la respuesta, pero ¿cómo funciona esto? los paquetes SSIS/DTS se almacenan en el servidor web. ¿Necesito crear un trabajo en el servidor web? si es así, ¿necesito instalar componentes SQL para crear un trabajo (no estoy seguro si la política del servidor en mi empresa lo permitirá)? cómo el procedimiento almacenado sabrá sobre el trabajo que se encuentra en otro lugar? – RKP

+0

¿está seguro de que el SSIS/DTS está en el servidor web? Deberían ser parte del DB ... –

+0

sí, los paquetes SSIS/DTS no se encuentran en la base de datos, se almacenan en el sistema de archivos en el servidor web. Si necesito crear un trabajo y llamarlo usando un procedimiento almacenado, ¿necesito instalar algún componente SQL en el servidor web? si no, tendré que buscar la opción en mi pregunta original. – RKP

0

Puede usar Rhino ETL en lugar de SSIS. Esta es una biblioteca ETL completamente desarrollada que le permite codificar sus trabajos ETL en C#.

+0

ETL ?? ahhh gracias Google: ** E ** xtract ** T ** transformación ** L ** yad –

Cuestiones relacionadas