2016-04-28 97 views
0

我已經有大約10個軟件包幾個月來一直運行得非常完美。這些軟件包使用了我基本上在所有軟件包中複製的相同腳本任務。所有這個腳本任務都會發送一封電子郵件。我在星期一來上班,突然間,我在所有包上碰到電子郵件腳本任務時都會收到此DTS腳本任務錯誤。從字面上看,這些軟件包沒有任何改變,我不確定要採取哪些措施來修復它。SSIS - DTS腳本任務在用戶代碼中遇到異常

#Region "Imports" 
Imports System 
Imports System.Data 
Imports System.Math 
Imports Microsoft.SqlServer.Dts.Runtime 
#End Region 

Public Sub Main() 

    'send email notification 
    Dim message As String = "message goes here" 
    sendEmail("[email protected]", "Subject is here", message) 



    Dts.TaskResult = ScriptResults.Success 
End Sub 


Sub sendEmail(ByRef toaddr As String, ByRef sbj As String, ByRef msg As String) 
    Dim objOutlook As Object 
    Dim objOutlookMsg As Object 
    objOutlook = CreateObject("Outlook.Application") 
    objOutlookMsg = objOutlook.CreateItem(0) 
    With objOutlookMsg 
     .To = toaddr 
     .Subject = sbj 
     .Body = msg 
     .sentonbehalfofname = "[email protected]" 
     .Send() 
    End With 
    objOutlookMsg = Nothing 
    objOutlook = Nothing 
End Sub 

當我通過代碼,似乎發生在這裏:

enter image description here

你可以提供任何幫助將不勝感激。

回答

1

無論您是在Outlook對象不再存在(在服務器本地?)上運行的程序包(或有權限問題 - 但是這是不可能的)

依賴這樣總是難以管理的時候系統變化 - 他們總是會!很難100%確定,因爲我無法從您的示例中看到您通過電子郵件發送的內容 - 但我建議您完全棄用腳本並使用Send Mail Task任務。

+0

+1。我曾經做過關於「無法創建ActiveX組件」的噩夢。 CreateObject不是一種可靠的方式來做事情。通過電子郵件,發送郵件任務和代碼中的直接SMTP連接都是更好的選擇。 – SebTHU

+0

我無法使用發送郵件任務,因爲我的公司的電子郵件設置...不記得爲什麼,但我做了一大堆研究,因爲我無法讓它工作,並最終解決了腳本任務.. – Jon

+0

我目前在本地運行軟件包 – Jon