13

在维护大量 SQL Server Integration Services 2008 R2 包时,我遇到了一个奇怪的问题。

这些包经常使用脚本任务,每个都包含用于与某些内部 Web 服务集成的 C# 代码。

编辑其中一个脚本涉及以下步骤:

  • 在设计器中选择脚本任务
  • 右键单击,选择编辑以弹出脚本任务编辑器对话框
  • 编辑脚本按钮
  • 等待(刚刚结束)15 秒
  • 编辑脚本
  • 关闭脚本编辑器
  • 按脚本任务编辑器对话框上的确定按钮
  • 等待(刚刚结束)30 秒
  • 对话框消失

这是等待,以粗体突出显示,这让我感到沮丧。

在那段时间没有 CPU 活动,没有磁盘 IO,没有网络流量——编辑器似乎只是被冻结了。

顺便说一句——这些时间是可靠的——在过去的几天里,我用秒表来测量它们,它们的变化小于我按下秒表上开始/停止按钮的准确性。

我能找到的唯一线索是netstat在暂停期间显示了一个额外的网络连接:

C:\>netstat -o -b

Active Connections

  Proto  Local Address          Foreign Address        State           PID
  TCP    fsis-datam-dev2:3478   akamai-9.fx.net.nz:http  SYN_SENT        700
  [VSTA.exe]

我目前的假设是,由于某种原因,延迟是某种超时,因为 SSIS(或者可能是 Visual Studio Tools for Applications 编辑器)“打电话回家”。有问题的机器没有互联网连接,所以请求是徒劳的。

4

1 回答 1

15

是的,您的猜测是正确的,这是一个(相当)众所周知的问题。.NET 运行时联系 crl.microsoft.com以检查被吊销的证书;如果您的计算机无法访问 Internet,则运行时会等待连接尝试超时,这可能会导致 SSIS 包启动速度非常慢,Visual Studio显然会锁定等。

常见的修复是只允许 Internet 访问 crl.microsoft.com,或使用本地 HOSTS 文件将名称重定向到 127.0.0.1。

于 2011-12-20T09:24:03.707 回答