2015-03-13 3 views
0

Я пытаюсь запустить пакет 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

У меня есть googled это, но нет большой помощи, поэтому я запускал пакет через командную строку, которая работает. Поэтому я полагаю, что это должны быть разрешения, поэтому я запускаю psexec, чтобы получить окно командной строки под пользователем сетевой службы, на котором работает веб-сайт. он по-прежнему работает, но по-прежнему не работает через мой сайт.

Я не работаю 64 бит, а сама машина 32 бит, поэтому она не будет работать в командной строке, даже если бы я был.

Папки которые доступны имеют полный доступ к «Все»

Я бегу SQL Server 2005.

Я бегу Windows Server 2003

Я поставил проверку задержки все на компонентах, которые я может не вызывать проблем.

Я запустить монитор процесса для обоих методов и вызов выглядит почти так же, но здесь они все равно:

Via Командная строка:

Parent PID: 4292, Командная строка: DTExec/F с : \ 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 \ Все пользователи ClusterLog = C: \ WINDOWS \ Cluster \ cluster.log CommonProgramFiles = C : \ Program Files \ Common Files COMPUTERNAME = имя_сервера 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 Путь = C: \ WINDOWS \ system32; C: \ WINDOWS; C: \ WINDOWS \ System32 \ Wbem; C: \ Program Files \ Dell \ SysMgt \ oma \ bin; C: \ Program Files \ Microsoft SQL Server \ 80 \ Инструменты \ 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 \ Установщик веб-платформы \ 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 ПОДСКАЖИТЕ = $ P $ G PSModulePath = C: \ WINDOWS \ system32 \ WindowsPowerShell \ v1.0 \ Модули \ Системный_диск = C: SystemRoot = C: \ WINDOWS ТЕМП = C: \ DOCUME ~ 1 \ Networ ~ 1 \ LOCALS ~ 1 \ Temp ТМП = C: \ DOCUME ~ 1 \ Networ ~ 1 \ LOCALS ~ 1 \ Temp USERDOMAIN = NT AUTHORITY USERNAME = NETWORK SERVICE USERPROFILE = C: \ Documents и Settings \ NetworkService Windir = C: \ WINDOWS

Via Сайт:

Parent PID: 3692, Командная строка : "dtexec"/F c: \ SSIS \ RNReport.dtsx/ConF "c: \ SSIS \ 1cee35d1-b181-4ee7-a1de-eb9fc9c5ebe7.dtsConfig", Текущий каталог: c: \ windows \ system32 \ inetsrv, Окружающая среда: ВСЕ ПОЛЬЗОВАТЕЛИ ПРОФИЛЬ = C: \ Documents и Settings \ All Users APP_POOL_ID = AppPoolName ClusterLog = C: \ WINDOWS \ Cluster \ Cluster.log CommonProgramFiles = C: \ Program Files \ Common Files COMPUTERNAME = имя_сервера 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 Vi sual Studio 8 \ Common7 \ IDE \ PrivateAssemblies \; C: \ WINDOWS \ system32 \ WindowsPowerShell \ v1.0; C: \ Program Files \ Microsoft \ Установщик веб-платформы \ PATHEXT = .COM; .EXE; .BAT; .CMD ; .VBS; .VBE; .JS; .JSE; .wsf; .wsh; .VBS; .PSC1 PROCESSOR_ARCHITECTURE = х86 = 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: \ WINDOWS \ TEMP TMP = C: \ WINDOWS \ TEMP USERPROFILE = C: \ Documents and Settings \ Default User win dir = C: \ WINDOWS

Любая помощь вообще будет оценена по достоинству.

Приветствия

+0

Это может быть полезно https://social.msdn.microsoft.com/Forums/sqlserver/en-US/5569bced-c1ae-49cd-9f12-0aa1dd4aad75/could-not-create-dtsapplication-because-of-error -0x800401f3? Forum = sqlintegrationservices –

+0

Спасибо за ответ, я уже видел это сообщение, но пакет успешно запускается на сервере в командной строке, поэтому все должно быть зарегистрировано, и я запускаю его с использованием одного и того же пользователя. Большое спасибо за ваш ответ, хотя это очень конкретный вопрос. – Anglefroghammer

+0

Вы запускаете его без присмотра?Можете ли вы попробовать запустить процесс, например, в c: \ ssis, а не c: \ windows \ system32 – Ako

ответ

0

Попробуйте запустить тот же пакет SSIS из консольного приложения, и если она работает, то попробуйте запустить же на веб-сайте. Если он работает в консоли, а не на веб-сайте. Затем проверьте, где вы разместили свой сайт. Например, если вы размещаете свой сайт в IIS, могут быть права доступа для выполнения ManagedDTS.dll в IIS.

Чтобы решить эту проблему, мне пришлось запускать консольное приложение с веб-сайта, а консольное приложение, в свою очередь, запускает мой пакет SSIS. Это просто предложение и старайтесь. Согласно вам, если пакет успешно выполняется через командную строку, но не через код, виновником является ManagedDTS.dll.

Смежные вопросы