Пакет служб SSIS не запускается из кода
Я пытаюсь запустить пакет служб SSIS с веб-сайта, используя следующий код:
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;
}
Это не удается, и мой журнал возвращает: не удалось создать DTS.Application из-за ошибки 0x800401F3
Я гуглил это, но не очень помог, поэтому я запустил пакет через командную строку, которая работает. Поэтому я полагаю, что это должны быть разрешения, поэтому я запускаю p sexec, чтобы получить командное окно под пользователем сетевой службы, под которым работает веб-сайт. это все еще работает, но все еще не работает через мой веб-сайт.
Я не работаю с 64-битной версией, а сама машина 32-битная, поэтому она не будет работать в командной строке, даже если бы я был.
Доступ к папкам имеет полные права на "Все"
Я использую SQL Server 2005.
Я использую Windows Server 2003
Я установил задержку проверки всех компонентов, которые я могу, не вызывая проблем.
Я запустил монитор процессов для обоих методов, и вызов выглядит примерно одинаково, но здесь они все равно:
Через командную строку:
PID родительского элемента: 4292, Командная строка: dtexec /F c:\SSIS\packagename.dtsx /ConF "c:\SSIS\1cee35d1-b181-4ee7-a1de-eb9fc9c5ebe7.dtsConfig", текущий каталог: C:\WINDOWS\system32, Среда: =C:=C:\WINDOWS\system32 =ExitCode=00000000 ALLUSERSPROFILE=C:\Documents and Settings\All Users ClusterLog=C:\WINDOWS\Cluster\cluster.log CommonProgramFiles=C:\ Программные файлы \ Общие файлы COMPUTERNAME= имя_сервера ComSpec=C:\WINDOWS\system32\cmd.exe FP_NO_HOST_CHECK= НЕТ lib=C:\Program Files\SQLXML 4.0\bin\ NUMBER_OF_PROCESSORS=2 ОС = Путь Windows_NT =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:\ Программные файлы \Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\;C:\WINDOWS\system32\WindowsPowerShell\v1.0;C:\Program Files\Microsoft\Web Установщик платформы \ PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.VBS;.PSC1 PROCESSOR_ARCHITECTURE=x86 PROCESSOR_IDENTIFIER=x86 Семейство 6 Модель 37 Шаг 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 и настройки \NetworkService windir=C:\WINDOWS
Через веб-сайт:
PID родительского объекта: 3692, командная строка: "dtexec" /F c:\SSIS\RNReport.dtsx /ConF "c:\SSIS\1cee35d1-b181-4ee7-a1de-eb9fc9c5ebe7.dtsConfig", текущий каталог: c:\windows\system32\inetsrv, среда: ALLUSERSPROFILE=C:\Documents and Settings\ все пользователи APP_POOL_ID=AppPoolName ClusterLog=C:\WINDOWS\Cluster\cluster.log CommonProgramFiles=C:\ Программные файлы \ Общие файлы COMPUTERNAME= имя_сервера ComSpec=C:\WINDOWS\system32\cmd.exe FP_NO_HOST_CHECK= НЕТ lib=C:\Program Files\SQLXML 4.0\bin\ NUMBER_OF_PROCESSORS=2 ОС =Windows_NT Путь =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\ Ins веб-платформы taller\ PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.VBS;.PSC1 PROCESSOR_ARCHITECTURE=x86 PROCESSOR_IDENTIFIER=x86 Семейство 6 Модель 37 Степпинг 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:\WINDS TEMP TMP=C:\WINDOWS\TEMP USERPROFILE=C:\Documents and Settings\ Пользователь по умолчанию windir = C: \ WINDOWS
Любая помощь будет оценена по достоинству.
ура
1 ответ
Попробуйте запустить тот же пакет служб SSIS из консольного приложения, и если он работает, попробуйте запустить его на веб-сайте. Если он работает в консоли, а не на веб-сайте. Затем проверьте, где вы разместили свой сайт. Например, если вы размещали свой веб-сайт в IIS, могут быть права доступа для запуска ManagedDTS.dll в IIS.
Чтобы решить эту проблему, мне пришлось запустить консольное приложение с веб-сайта, а консольное приложение, в свою очередь, запустило мой пакет служб SSIS. Это всего лишь предложение и продолжайте пробовать. По вашему мнению, если пакет запускается через командную строку, а не через код, то виновником является ManagedDTS.dll.