Mam projekt ssis opracowany w porównaniu do 2012 r. Ultimate. Korzystam z modelu wdrażania projektu, a projekt jest ustawiony na uruchamianie w trybie 32-bitowym. Pakiet wykonuje bezbłędnie w moim środowiska rozwoju, ale gdy wdrożyć go do katalogu SSIS i próbować go uruchomić tam, pojawia się następujący błąd:Zadanie Runtime zadania zadania DTS: Wyjątek został zgłoszony przez cel wywołania
wdrożyć projekt do Windows Server 2012 R2 a baza danych to także 2012 z katalogiem SSIS.
Uruchomiłem projekt na serwerze i próbowałem debugować zadanie skryptu na serwerze z punktem przerwania, ale błąd występuje przed dotarciem do punktu przerwania.
Jeśli wyłączę wszystkie moje zadania skryptowe, pakiet zostanie wykonany bezbłędnie na serwerze.
Mam również zaktualizowane serwerach lokalnych opcje zabezpieczeń wyłączając Kryptografia systemu: użyj algorytmów zgodnych FIPS jako możliwe rozwiązanie zamieszczonych na Microsoft Support.
Próbowałem również uruchomić jako pakiet systemu plików na serwerze i pojawia się ten sam błąd.
Też potrójnie sprawdziłem, czy moje zmienne są poprawne, a nawet ustawiają je jako zmienne do odczytu.
Pierwszy kod zadania skryptowego znajduje się poniżej (ale wszystkie zadania skryptu kończą się niepowodzeniem/trzy w tym pakiecie). Zadanie skryptu odwołuje się do biblioteki dll o nazwie UHS.IntegrationServices.CommonUtils, która została utworzona jako GACed, a biblioteka dll została zbudowana w VS 2005 z ramką 2.0.50727.
Public Sub Main()
Dim packageID As String = Dts.Variables("System::PackageID").Value.ToString()
Dim strInterfaceName As String = Dts.Variables("System::PackageName").Value.ToString()
Dim strConfigConnectionString1 As String = Dts.Variables("User::UHS_SSIS_CNXN_STR_CONFIG").Value.ToString()
Dim myConnection As OleDb.OleDbConnection = New OleDb.OleDbConnection
Dim mySqlCommand As OleDb.OleDbCommand = New OleDb.OleDbCommand
Dim myReader As OleDb.OleDbDataReader = Nothing
Dim rowsProcessed As Integer = 0
Try
myConnection.ConnectionString = strConfigConnectionString1
myConnection.Open()
Dim getEmailQuery As String = "SELECT Email FROM EmailMaster" & _
" where InterfaceName='" & strInterfaceName & "'" & _
" and Active = 'Y' "
Dim NotifyInterface As SMTPNotifyAlerts
NotifyListenerManager.GetNotifierByType(packageID, NotifyInterface, CommonNotifierAlerts.AlertInfo.AlertTypes.alertEmail)
mySqlCommand = New OleDb.OleDbCommand(getEmailQuery, myConnection)
mySqlCommand.CommandTimeout = 0
myReader = mySqlCommand.ExecuteReader
If (myReader.HasRows()) Then
While (myReader.Read())
NotifyInterface.alertDest.Add(myReader("Email").ToString().Trim())
rowsProcessed = rowsProcessed + 1
End While
End If
NotifyListenerManager.BroadcastMessage(CommonNotifierAlerts.BasicAlerts, 0, Nothing, "Startup logfile")
Dts.TaskResult = ScriptResults.Success
Catch ex As Exception
Dts.Events.FireError(0, "Init Email Master", ex.Message, "", 0)
Dts.TaskResult = ScriptResults.Failure
End Try
End Sub
Problem pojawia się w odniesieniu do biblioteki dll. Kiedy komentuję linie NotifyInterface i NotifyListener, skrypt wykonuje się bezbłędnie, ale biblioteka DLL znajduje się w GAC i mogę ją wyświetlić w C: \ Windows \ assembly.
Dlaczego to działa na moim lokalnym serwerze, ale nie na serwerze? Czy na serwerze potrzebny jest framework 2.0? Jeśli odniesienie do biblioteki DLL jest zepsute, czy nie powinienem otrzymać bardziej opisowego błędu?
Każda pomoc w szukaniu pomysłów na kłopoty byłaby bardzo doceniana.
Cześć, czy rozwiązać ten problem? jakie jest rozwiązanie? Dzięki – Ling