【问题标题】:Is there a good way to create a recurring import for an ASP.NET site?有没有一种为 ASP.NET 站点创建循环导入的好方法?
【发布时间】:2010-10-09 16:16:53
【问题描述】:

我正在处理的站点正在运行 Windows Server 2003 和 SQL Server 8(2000?),以及 ASP.NET 3.5。

我需要运行某种脚本或应用程序以将数据从 FTP 文本文件导入数据库。机器上已经有一个站点正在运行,该站点使用当前数据库。我可以使用计划任务可靠地启动某种将导入数据的 .aspx 页面吗?还是有更好的方法?

如何确保没有其他人可以访问运行导入的页面?我不希望随机用户运行导入!

提前致谢!

附:在插入数据之前,需要对数据进行一些处理。即查找、条件等,所以数据库工具不够健壮(我认为)。我讨厌 DTS,而且我认为 SSIS 在这个版本中不可用。

【问题讨论】:

    标签: asp.net sql-server iis scheduled-tasks recurring


    【解决方案1】:

    如果您想让 C# 应用程序处理您的导入,我建议您使用不带表单的 Windows 应用程序 (exe)(比控制台应用程序更好,因为它在运行时不会弹出任何 UI)。让它按计划任务每​​隔一段时间(每分钟)运行一次。

    【讨论】:

    • 控制台应用很乐意作为计划任务运行,而不会弹出任何 UI(或有登录用户)
    【解决方案2】:

    为什么要使用 ASP.NET?根据作业的复杂性,您可以将其直接加载到数据库 (BULK LOAD),如果需要更复杂的处理,可以使用 DTS (SQL Server 2000) 或 SSIS (SQL Server 2005/2008)。

    【讨论】:

    • 我讨厌 DTS,它让我需要它做的事情变得复杂。 SSIS 不可用(因为我提供了版本信息)。我需要运行脚本/应用程序,因为需要对数据进行一些处理。
    【解决方案3】:

    作业中的 DTS 和存储过程。

    作业中的 BCP 和存储过程。

    您说您需要进行大量查找和转换? SQL 擅长于此 - 并且擅长快速执行。起初它看起来有点吓人,但并不难。

    【讨论】:

      【解决方案4】:

      运行 BULK INSERT 或 bcp 来导入数据,请参阅此处http://msdn.microsoft.com/en-us/library/aa173839(SQL.80).aspx

      【讨论】:

      • 需要事先对数据进行一些处理。
      • 也许......但我宁愿使用 C#,因为我更擅长使用它。大量的查找/转换和事情需要发生,而且我对 T-SQL 不太擅长。
      • 我就这么说吧 - 一点 SQL 可以为您节省大量编码。
      【解决方案5】:

      我会在这里回应其他人 - 你不想让计划任务点击网页。 SQL Server 提供了一些不错的数据导入选项,或者您可以编写一个简单的 windows 程序并将其作为计划任务运行。

      另一种选择是编写一个 Windows 服务来监视您的 FTP 目录并进行导入。

      【讨论】:

        【解决方案6】:

        正如其他人所说,可能一个单独的控制台应用程序(由计划任务触发)或 Windows 服务将是这种情况下的最佳选择。

        另一方面,如果您已经在服务器上运行的 Web 应用程序中提供了所有必需的功能,那么您可能会设置一个计划任务,它启动一个脚本(VBscript、JScript),然后调用Web 应用的页面。

        为了获得某种安全性(例如,防止任何用户调用该页面),您可以向页面添加一些代码,以检查该页面是否使用http://localhost 调用。这至少可以防止从远程客户端调用该页面。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-11-06
          • 2020-06-21
          • 1970-01-01
          • 1970-01-01
          • 2019-03-14
          • 1970-01-01
          • 1970-01-01
          • 2010-10-16
          相关资源
          最近更新 更多