2013-07-17 14 views
7

Próbuję wykonać programowo pakiet SSIS przy użyciu C#.Problemy z uruchamianiem pakietu SSIS programowo iz linii poleceń (DTEXEC)

Application app = new Application(); 
Package package = app.LoadPackage(pkgFullPath, null); 
package.Execute(); 

ja dostaję błąd mówiąc:

Error in Microsoft.SqlServer.Dts.Runtime.TaskHost/SSIS.Pipeline : To run a SSIS package outside of SQL Server Data Tools you must install Conditional Split of Integration Services or higher. 

Error in Microsoft.SqlServer.Dts.Runtime.TaskHost/SSIS.Pipeline : To run a SSIS package outside of SQL Server Data Tools you must install Lookup of Integration Services or higher. 

używam SSIS w Visual Studio 2010, ale wykonywanie kodu C# od testu NUnit w VS 2012 (z systemem .NET 4.0)

Pakiet działa dobrze wewnątrz projektu SSIS w VS 2010, jeśli uruchomię go z debugowaniem (naciśnij klawisz F5), ale nie powiedzie się z tym samym błędem, jeśli próbuję uruchomić go przy pomocy dtexec z wiersza poleceń (ta sama awaria w 32 i 64-bitowa wersja dtexec). To samo kończy się niepowodzeniem z tym samym błędem, jeśli uruchomię go z poziomu Visual Studio przy użyciu ctrl + F5 (bez debugowania).

Znalazłem artykuły online, które sugerują, że jest to związane z problemem 64-bitowym v 32-bitowym, ale widzę ten sam błąd podczas uruchamiania obu wersji dtexec. Używam wersji 11.0.2100.60 dtexec, która pasuje do wersji SQL Server Integration Services Designer w VS 2010.

Nie otrzymam błędu, jeśli uruchomię prosty pakiet bez warunkowego podziału i wyszukiwania. Czy muszę zainstalować coś ekstra, aby uruchomić to poza Visual Studio?

Wszelkie pomysły?

+1

Czy jesteś pewien, że usługa integracja jest prawidłowo zainstalowana? Ofert i SSDT będzie mógł uruchomić pakiet. Jeśli chcesz użyć dtexec lub uruchomić go programowo, usługi integracyjne musi być zainstalowany . Sprawdź usługi uruchomione w systemie. Jak w scenariuszu „usługa SQL Server Integration” albo nie będzie tam lub w trybie zatrzymany. – Akshay

+0

we właściwościach pakietu, czy próbowałeś regulowania własności Run64BitRuntime? [odniesienie] (http://goo.gl/QjhgFp) –

+0

Dzięki chłopaki. mam nadzieję, że niektóre z tych pomysłów może być pomocne fo r inne osoby z podobnymi problemami. Jednak mój projekt zakończył się w innym kierunku, więc nie mam już środowiska skonfigurowanego do próbowania nowych rozwiązań. – TGH

Odpowiedz

2

To jest kod VB, ale można go łatwo przetłumaczyć na C#. Spróbuj uruchomić polecenie SQL, które wykonuje pakiet SSIS.

Coś jak:

Try 
    'Job implementation goes here 
    Dim jobConnection As System.Data.SqlClient.SqlConnection 
    Dim jobCommand As SqlCommand 
    Dim jobParameter As SqlParameter 
    Dim jobReturnValue As SqlParameter 
    Dim jobResult As Integer 


    jobConnection = New System.Data.SqlClient.SqlConnection(SSISConnectionString) 
    jobCommand = New SqlCommand("msdb.dbo.sp_start_job", jobConnection) 
    jobCommand.CommandType = CommandType.StoredProcedure 

    jobReturnValue = New SqlParameter("@RETURN_VALUE", SqlDbType.Int) 
    jobReturnValue.Direction = ParameterDirection.ReturnValue 
    jobCommand.Parameters.Add(jobReturnValue) 


    jobParameter = New SqlParameter("@job_name", SqlDbType.VarChar) 
    jobParameter.Direction = ParameterDirection.Input 
    jobCommand.Parameters.Add(jobParameter) 
    jobParameter.Value = packageName 

    jobConnection.Open() 
    jobCommand.ExecuteNonQuery() 
    jobResult = DirectCast(jobCommand.Parameters("@RETURN_VALUE").Value, Integer) 

    jobConnection.Close() 


    Select Case jobResult 
     Case 0 
      'Successful run 
     Case Else 
      Throw New Exception("SQLAgent Job failed to start!") 
    End Select 


Catch ex As Exception 
    Return ex 
End Try 
1

Według microsoft stronie Install Integration Services internetowej:

„Niektóre składniki programu SQL Server, które można wybrać do instalacji na stronie Wybieranie funkcji Kreatora konfiguracji zainstalować częściową podzbiór Te komponenty są przydatne do określonych zadań, ale funkcjonalność Integration Services będzie ograniczona, na przykład opcja Database Engine Services instaluje komponenty Integration Services wymagane dla Kreatora importu i eksportu SQL Server. Narzędzia opt ion instaluje komponenty Integration Services wymagane do zaprojektowania pakietu, ale usługa Integration Services nie jest zainstalowana i nie można uruchamiać pakietów poza narzędziami danych SQL Server. Aby zapewnić pełną instalację Integration Services, należy wybrać Integration Services na stronie Wybór funkcji „.

Dlatego można uruchomić pakietów SSIS z poziomu narzędzi firmy Microsoft, ale nie z zewnątrz te narzędzia. Dziwnie to tylko przewraca się na niektóre typy komponentów:

Jeśli postępujesz zgodnie z ich poradami na tej stronie w celu pełnej instalacji składników usług integracji, powinno to rozwiązać problem.

„Pełną instalację Integration Services, wraz z narzędzi i dokumentacji dla rozwijania i zarządzania pakietami, wybierz oba Integration Services oraz następujące cechy wspólne:

Narzędzia
  • SQL Server Data zainstalować narzędzia pakiety projektowania.
  • Zarządzanie Narzędzia- Kompletna zainstalować SQL Server Management Studio pakietów zarządzających.
    • Client Tools SDK do zainstalowania zarządzanych zespoły dla Integratio n Programowanie usług.

"

Powiązane problemy