从SSIS包转向IIS上托管的网站

时间:2011-09-07 08:29:47

标签: asp.net sql-server iis ssis

我有SSIS包,执行几分钟。它将数据复制到我的PROD数据库。包从Sql Server Job启动。我想在执行包时让我的网站脱机。如何在执行前关闭我的网站,然后自动将其打开?

我使用的是Sql Server 2008和IIS6。

由于

1 个答案:

答案 0 :(得分:2)

这是一个可能的选择:

<强> Within the SSIS package

  • 使用以下命令创建名为 StopWebsite.bat 的批处理文件:

    iisreset /stop computername

  • 使用以下命令创建另一个名为 StartWebsite.bat 的批处理文件:

    iisreset /start computername

  • 在SSIS包中,在“控制流”选项卡中放置执行流程任务。从Execute Process任务中调用第一个批处理文件 StopWebsite.bat 。这将停止Internet信息服务(IIS)。

  • 在第一个执行流程任务之后放置所有其他任务。

  • 完成“控制流”选项卡中的所有其他任务后,再放置另一个执行流程任务。调用第二个批处理文件 StartWebsite.bat 。这将启动IIS。

  • 请注意,您需要将批处理文件放在SSIS包可以从生产环境访问它们的位置。

<强> Within the SQL Server job

  • 如果您不想在SSIS包中执行此操作。您需要在SQL Server作业中执行三个步骤。

  • 步骤1 将执行命令iisreset /stop computername作为操作系统(CmdExec)

  • 类型的作业
  • 第2步会调用SSIS包。

  • 步骤3 将执行命令iisreset /start computername作为操作系统(CmdExec)

  • 类型的作业
  • 如果遇到权限问题,请确保正在执行步骤的帐户(通常是 SQL Server代理帐户)具有在远程服务器上重新启动IIS的权限。您还可以尝试使用可以使用域帐户凭据的代理帐户,在following link屏幕截图中 8 - 14 说明如何创建代理工作类型帐户 SSIS包执行。您可能需要在操作系统(CmdExec)作业类型上执行类似操作。 How do I create a step in my SQL Server Agent Job which will run my SSIS package?

computername替换为您网站所在机器的实际计算机名称或IP地址。

我想说选项#2更容易维护。

希望有所帮助。