0

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

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

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

提前致谢!

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

4

6 回答 6

4

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

于 2009-02-24T21:29:43.620 回答
2

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

于 2009-02-24T21:21:28.820 回答
1

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

于 2009-02-24T21:22:54.357 回答
1

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

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

于 2009-02-24T21:37:22.790 回答
1

DTS 和存储过程中的一个作业。

作业中的 BCP 和存储过程。

你说你需要做很多查找和转换?SQL 擅长于此 - 并且擅长快速完成。起初它看起来有点吓人,但并不难。

于 2009-02-24T23:39:03.297 回答
0

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

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

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

于 2009-02-24T22:01:42.280 回答