"“来自脚本任务”的调用目标引发了异常

时间:2018-04-05 00:57:42

标签: sql-server visual-studio reporting-services ssis

我在使用DTEXEC从.bat文件运行包含脚本任务的SSIS包时收到以下错误。使用" EXEC xp_cmdshell"

从MS SQL中的存储过程调用.bat文件

错误:    代码:0x00000001    描述:调用目标抛出了异常。

当我从Visual Studio中运行SSIS包时,它完美地运行。 当我手动运行.bat文件时,它完美地运行。 我收到错误的唯一一次是我运行存储过程。

这是脚本任务:

Feign.builder().encoder(new FooEncoder())

我将补充一点,当运行存储过程时,我看到正在使用.xpdf扩展名创建文件,但是大小为0kb,并且在将扩展名更改为.pdf时无法打开。它几乎就像部分运行一样,但在调用SSRS URL时无法完成。

1 个答案:

答案 0 :(得分:0)

有三件事可以帮助你。

  1. 不要吃异常,这是你的朋友,你应该退货。
  2. 始终释放您的资源。
  3. 检查SSRS错误日志。
  4. SSRS错误日志将包含有助于您解决问题的详细信息。可以在%ProgramFiles%\ Microsoft SQL Server \ MSSQL.x \ Reporting Services \ LogFiles 中找到日志。

    修复1最终将成为解决方案,但是,如果你看不到它,就无法修复它。

    Dim loFileStream = Nothing
    Try
         Try
           loFileStream = New System.IO.FileStream(localpath, System.IO.FileMode.Create, System.IO.FileAccess.Write)
           loRequest = CType(System.Net.WebRequest.Create(url), System.Net.HttpWebRequest)
           loRequest.Credentials = System.Net.CredentialCache.DefaultCredentials
           loRequest.Timeout = 600000
           loRequest.Method = "GET"
           loResponse = CType(loRequest.GetResponse, System.Net.HttpWebResponse)
           loResponseStream = loResponse.GetResponseStream
           Do While liCount > 0
               liCount = loResponseStream.Read(laBytes, 0, 256)
               loFileStream.Write(laBytes, 0, liCount)
           Loop
           loFileStream.Flush()
       Catch ex As Exception
           LogExceptionSomewhere("My process failed because of -->" + ex.ToString())
       End Try
    Finally    
        If loFileStream<>Nothing Then    
            loFileStream.Close()
        EndIf
    End Finally