C# SQL Server Integration Services(SQL Server 2016)(SSIS)是否每次重新编译C代码';是运行,还是缓存?
最近我遇到了一个奇怪的问题,一些变量在DTSX包中的C#任务中被错误分配,但在SQL Server 2012上安装的SSI中没有导致错误,但在SQL Server 2016上确实出现了错误 基本上,错误如下所示:C# SQL Server Integration Services(SQL Server 2016)(SSIS)是否每次重新编译C代码';是运行,还是缓存?,c#,sql-server,ssis,C#,Sql Server,Ssis,最近我遇到了一个奇怪的问题,一些变量在DTSX包中的C#任务中被错误分配,但在SQL Server 2012上安装的SSI中没有导致错误,但在SQL Server 2016上确实出现了错误 基本上,错误如下所示: Variables.ContainerDisable100 = C100; Variables.ContainerDisable101 = C101; Variables.ContainerDisable102 = C102; Variables.Con
Variables.ContainerDisable100 = C100;
Variables.ContainerDisable101 = C101;
Variables.ContainerDisable102 = C102;
Variables.ContainerDisable102 = C103;
如您所见,Variables.ContainerDisable102应该是Variables.ContainerDisable103。这将导致一个错误,当dtsx包运行时,该错误将进一步影响dtsx包的执行。但是,这并没有在我们使用SQL Server 2012时在本地环境中造成问题,但是在SQL Server 2016上,这导致了预期的错误
我的理论是,有人使用记事本++而不是数据工具更新了这个dtsx包中的C代码。这意味着C#代码没有重新编译,当SQLServer2012运行编译后的代码时,它工作正常
这就引出了我的问题,SQL Server 2016 SSI仍然关注已编译的代码还是未编译的C#代码
这是一个非常奇怪的问题,这是我唯一的预感。当我在data tools中手动打开C#任务时,做了一个小的更改,构建并保存了它,然后在SQL Server 2012中出现了错误,这让我相信它以前没有正确构建,或者是通过XML更新的
更新
因此,我已经确认客户安装运行的是C代码,而不是预编译的二进制文件。设置如下所示:
Variables.ContainerDisable100 = C100;
Variables.ContainerDisable101 = C101;
Variables.ContainerDisable102 = C102;
Variables.ContainerDisable102 = C103;
- SQL Server 2016
- SQL Server集成服务13.0
当我用notepad++更新dtsx,只更新C#代码并使用SQL Server作业代理运行包时,它失败了。不应该是这种情况,因为它应该查看预编译的二进制文件。我在微软的“新内容”页面上看不到任何与此相关的内容。这是一个大海捞针的问题,但我已经追根究底了 我上面提到的包中有一个bug,但是这个bug没有被编译并存储在dtsx中,这意味着在本地运行时我没有收到错误 我的本地安装正在使用
- SQL Server 2012
- SQL Server集成服务11.0
Variables.ContainerDisable100 = C100;
Variables.ContainerDisable101 = C101;
Variables.ContainerDisable102 = C102;
Variables.ContainerDisable102 = C103;
- SQL Server 2016
- SQL Server集成服务13.0