Nous sommes confrontés à un problème lors de l'exécution d'un package SSIS à partir d'ASP.NET lors du déploiement du site Web. Nous avons chargé le package dans un serveur Integration Services dans MSDB. Lorsque nous essayons le package à partir de SQL Server Management Studio, il s'exécute correctement. Lorsque j'exécute le code à partir de Visual Studio, le package chargé dans le serveur s'exécute correctement. Le problème survient lorsque la page est déployée sur un serveur: aucune exception n'est détectée et aucune erreur n'est consignée, mais le package ne s'exécute pas. Nous voyons juste une erreur dans Windows Event Viewer en disant: "Package" "a échoué.". La page ASP.NET exécute l'emprunt d'identité d'un compte avec l'accès "sysadmin" à SQL Server et également les partages où se trouvent les fichiers Excel source.Erreur lors de l'exécution du package SSIS à partir d'ASP.NET
Voici le code appelant le package SSIS:
public void executePkg(string pkgAddr, string pkgServer, int periodID)
{
logger.Info(string.Format("Execution of SSIS Package '{0}' in server '{1}' started.", pkgAddr, pkgServer));
string pidvar = "User::periodid";
string pkgLocation;
Package pkg;
Application app;
DTSExecResult pkgResults;
app = new Application();
pkgLocation = pkgAddr;
try
{
pkg = (Package)app.LoadFromSqlServer(pkgAddr, pkgServer, null, null, null);
Variables vars = pkg.Variables;
int varCount = vars.Count;
bool varExist = vars.Contains(pidvar);
pkg.VariableDispenser.LockOneForWrite(pidvar, ref vars);
vars[pidvar].Value = periodID;
pkg.Variables[pidvar].Value = periodID;
vars.Unlock();
pkgResults = pkg.Execute();
}
catch (Exception ex)
{
logger.Error(ex.Message);
}
}
Toute aide serait appréciée.
Remarque: Juste une petite correction, l'ASP.NET n'emprunte plus d'identité, à la place, l'AppPool est en cours d'exécution avec le compte de service. Le comportement est le même avec les deux scénarios.