我們在部署網站時從ASP.NET運行SSIS包時遇到問題。我們已將該軟件包加載到MSDB中的Integration Services服務器中。當我們從SQL Server Management Studio嘗試包時,它運行正常。當我從Visual Studio執行代碼時,加載到服務器中的包運行正常。問題出現在頁面部署到服務器時:沒有捕獲到異常,也沒有記錄錯誤,但程序包不執行。我們只是在Windows事件查看器中看到一個錯誤:「Package」失敗。「 ASP.NET頁面通過「sysadmin」訪問SQL Server以及源Excel文件所在的共享來運行帳戶的模擬。從ASP.NET執行SSIS包時出錯
這裏是代碼調用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);
}
}
任何幫助,將不勝感激。
注:只是一個小回調,ASP.NET不再模仿,相反,應用程序池與服務帳戶下運行。這兩種情況的行爲是相同的。