我正在处理的网站是运行Windows Server 2003和SQL Server 8(2000?)以及ASP.NET 3.5。
我需要运行某种脚本或应用程序来将数据从FTP文本文件导入数据库。机器上已经有一个运行的站点,它使用当前的数据库。我可以使用计划任务可靠地启动某种将导入数据的.aspx页面吗?或者有更好的方法吗?
如何确保没有其他人可以访问运行导入的页面?我不希望随机用户运行导入!
提前致谢!
P.S。在插入数据之前需要对数据进行一些处理。即查找,条件等,因此数据库工具不够健壮(我认为)。我讨厌DTS,我觉得这个版本没有SSIS。
答案 0 :(得分:4)
如果你想让一个C#App处理你的导入,我会建议一个没有表单的Windows应用程序(exe)(比控制台应用程序更好,因为它运行时不会弹出任何UI)。让它按计划任务每隔一段时间(每分钟)运行一次。
答案 1 :(得分:2)
为什么要使用ASP.NET?根据作业的复杂程度,如果需要更复杂的处理,您可以将其直接加载到数据库(BULK LOAD)或使用DTS(SQL Server 2000)或SSIS(SQL Server 2005/2008)。
答案 2 :(得分:1)
运行BULK INSERT或bcp来导入数据,请参阅此处http://msdn.microsoft.com/en-us/library/aa173839(SQL.80).aspx
答案 3 :(得分:1)
我会在这里回应其他人 - 您不希望计划任务点击网页。 SQL Server提供了一些很好的数据导入选项,或者您可以编写一个简单的Windows程序并将其作为计划任务运行。
另一种选择是编写一个监视FTP目录并进行导入的Windows服务。
答案 4 :(得分:1)
作业中的DTS和存储过程。
作业中的BCP和存储过程。
你说你需要做很多查找和转换吗? SQL很擅长 - 并且擅长快速完成。起初看起来有点令人生畏,但并不难。
答案 5 :(得分:0)
正如其他人所说,可能是一个单独的控制台应用程序(由计划任务触发)或Windows服务将是这种情况的最佳选择。
另一方面,如果您已经在服务器上运行的Web应用程序中具有所有必需的功能,那么您可以设置一个计划任务,该任务启动脚本(VBscript,JScript),然后调用网页应用的一页。
要获得某种安全性(例如,阻止任何用户可以调用该页面),您可以向页面添加一些代码,以检查是否使用http://localhost调用了该页面。这至少会阻止从远程客户端调用页面。