SSIS Package not running from code

0

I am attempting to run an SSIS package from a website using the following code:

Process process = new Process();
        try
        {
            process.StartInfo.UseShellExecute = false;

            process.StartInfo.RedirectStandardOutput = true;

            process.StartInfo.FileName = "dtexec";

            process.StartInfo.Arguments = "/F " + ConfigurationManager.AppSettings["SSISLocation"] + packageName + " /ConF \"" + configLocation + "\"";

            System.IO.File.AppendAllText(ConfigurationManager.AppSettings["SSISLocation"] + "Log.txt", "/F " + ConfigurationManager.AppSettings["SSISLocation"] + packageName + " /ConF \"" + configLocation + "\"\r\n");

            process.Start();
            System.IO.File.AppendAllText(ConfigurationManager.AppSettings["SSISLocation"] + "Log.txt", process.StandardOutput.ReadToEnd() + "\r\n");                                
            process.WaitForExit();

            return true;
        }

This fails and my log returns: Could not create DTS.Application because of error 0x800401F3

I have googled this but there is not much help so I ran the package via command line which works. So I figure it must be permissions so I run psexec to get me a command window under the network service user that the website is running under. it still works but still doesn't work through my website.

I'm not running 64 bit and the machine itself is 32 bit so it wouldn't work on command line even if I were.

The folders being accessed have full permissions to "Everybody"

I am running sql server 2005.

I am running windows server 2003

I have set delay validation all on components that I can without causing issues.

I have run process monitor for both methods and the call looks pretty much the same but here they are anyway:

Via Command line:

Parent PID: 4292, Command line: dtexec /F c:\SSIS\packagename.dtsx /ConF "c:\SSIS\1cee35d1-b181-4ee7-a1de-eb9fc9c5ebe7.dtsConfig", Current directory: C:\WINDOWS\system32, Environment: =C:=C:\WINDOWS\system32 =ExitCode=00000000 ALLUSERSPROFILE=C:\Documents and Settings\All Users ClusterLog=C:\WINDOWS\Cluster\cluster.log CommonProgramFiles=C:\Program Files\Common Files COMPUTERNAME=servername ComSpec=C:\WINDOWS\system32\cmd.exe FP_NO_HOST_CHECK=NO lib=C:\Program Files\SQLXML 4.0\bin\ NUMBER_OF_PROCESSORS=2 OS=Windows_NT Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Dell\SysMgt\oma\bin;C:\Program Files\Microsoft SQL Server\80\Tools\Binn\;C:\Program Files\Microsoft SQL Server\90\DTS\Binn\;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\;C:\WINDOWS\system32\WindowsPowerShell\v1.0;C:\Program Files\Microsoft\Web Platform Installer\ PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.VBS;.PSC1 PROCESSOR_ARCHITECTURE=x86 PROCESSOR_IDENTIFIER=x86 Family 6 Model 37 Stepping 1, GenuineIntel PROCESSOR_LEVEL=6 PROCESSOR_REVISION=2501 ProgramFiles=C:\Program Files PROMPT=$P$G PSModulePath=C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\ SystemDrive=C: SystemRoot=C:\WINDOWS TEMP=C:\DOCUME~1\NETWOR~1\LOCALS~1\Temp TMP=C:\DOCUME~1\NETWOR~1\LOCALS~1\Temp USERDOMAIN=NT AUTHORITY USERNAME=NETWORK SERVICE USERPROFILE=C:\Documents and Settings\NetworkService windir=C:\WINDOWS

Via Website:

Parent PID: 3692, Command line: "dtexec" /F c:\SSIS\RNReport.dtsx /ConF "c:\SSIS\1cee35d1-b181-4ee7-a1de-eb9fc9c5ebe7.dtsConfig", Current directory: c:\windows\system32\inetsrv, Environment: ALLUSERSPROFILE=C:\Documents and Settings\All Users APP_POOL_ID=AppPoolName ClusterLog=C:\WINDOWS\Cluster\cluster.log CommonProgramFiles=C:\Program Files\Common Files COMPUTERNAME=servername ComSpec=C:\WINDOWS\system32\cmd.exe FP_NO_HOST_CHECK=NO lib=C:\Program Files\SQLXML 4.0\bin\ NUMBER_OF_PROCESSORS=2 OS=Windows_NT Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Dell\SysMgt\oma\bin;C:\Program Files\Microsoft SQL Server\80\Tools\Binn\;C:\Program Files\Microsoft SQL Server\90\DTS\Binn\;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\;C:\WINDOWS\system32\WindowsPowerShell\v1.0;C:\Program Files\Microsoft\Web Platform Installer\ PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.VBS;.PSC1 PROCESSOR_ARCHITECTURE=x86 PROCESSOR_IDENTIFIER=x86 Family 6 Model 37 Stepping 1, GenuineIntel PROCESSOR_LEVEL=6 PROCESSOR_REVISION=2501 ProgramFiles=C:\Program Files PSModulePath=C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\ SystemDrive=C: SystemRoot=C:\WINDOWS TEMP=C:\WINDOWS\TEMP TMP=C:\WINDOWS\TEMP USERPROFILE=C:\Documents and Settings\Default User windir=C:\WINDOWS

Any help at all will be most appreciated.

Cheers

c#
sql-server-2005
ssis
dtexec
asked on Stack Overflow Mar 13, 2015 by Anglefroghammer • edited Mar 13, 2015 by Anglefroghammer

1 Answer

0

Try to run same SSIS package from console application and if it works then try to run same in website. If it runs in console and not in website. Then check where you hosted your website. For example if you hosted your website in IIS, there may be permission privileges to execute ManagedDTS.dll in IIS.

To solve this problem, i had to run console application from website and the console application in turn runs my SSIS package. This is just suggestion and keep try. According to you if the package runs via command line successfully but not via code then the culprit is ManagedDTS.dll.

answered on Stack Overflow Mar 14, 2015 by Govind

User contributions licensed under CC BY-SA 3.0