0

我想在 Asp.net 中调度

我有以下选项来实现这个

  1. 编写 SQLServer JOB(我不想这样做。不想离开 .Net 环境)

  2. 第二个选项是我将编写 windows 服务,这个窗口服务将调用 asp.net webservice 然后这个 webservice 调用 asp.net 方法
    (我也不需要这样做,因为我的托管服务提供商可能不允许我安装窗口服务)

  3. 第三个选项是我在全局类的 Application_Start 事件中调用我的调度方法(缺点是,网络服务器会随时终止线程)

  4. 在主页的 Page_Load 事件中调用调度代码(可能几个小时没有人访问我的网站,页面执行也可能由于调度代码而变慢)

  5. 我还发现一些在线服务会以给定的时间间隔调用您的页面,下面给出了一些

    http://www.cronservice.co.uk/new/ http://scheduler.codeeffects.com

任何人都给我投注者解决方案,并解释为什么它是投注者?

提前致谢

4

6 回答 6

4

ASP.NET 应用程序不是实现调度的正确位置。我建议创建一个在短时间内运行的服务或计划任务。

于 2012-05-01T15:00:39.200 回答
1

在共享托管环境中,您没有太多选择。我的主机 (WinHost) 允许远程访问他们的数据库,因此我能够使用任务计划程序创建在本地服务器上运行的可执行文件。

由于数据库是通过 Internet 访问的,因此性能不是很好,但它仍然比尝试使用 ASP.NET 运行伪计划任务要好。

一些主机还提供一项服务,该服务将按计划在您的站点内请求一个 URL。但是,这对我不起作用,因为我必须运行的任务比请求超时时间长。

于 2012-05-01T15:07:28.590 回答
0

没有一种解决方案适合所有人。SQL 作业和 windows 作业(通过windows 任务调度程序调度)被广泛使用。在我以前的工作地点之一,他们的工作可以在多个平台(大型机、Windows、SQL 服务器)上运行。其中一些工作的失败,每天将造成数千美元的损失。所以他们采用了一种叫做 ESP 的东西。该软件监控所有平台上的作业,并在出现故障时向控制室发送消息。

如果您对要求有更多了解,我们可能会为您提供更好的帮助。

于 2012-05-01T15:02:41.993 回答
0

ASP.NET 不是存放计划任务的正确位置。当我必须创建计划任务时,我正在使用 Quartz.net。

于 2012-05-01T15:05:32.093 回答
0

创建一个启动任务的页面并将其放置在 URL http://www.mydomain.com/runtask中。

在您的家用 PC 上创建一个向http://www.mydomain.com/runtask发送请求的计划任务。

您需要始终保持家用 PC 处于开启状态。

于 2012-05-01T15:06:21.990 回答
0

理想情况下,当您获得完全控制/历史记录/错误报告等时,我会选择 1。您可以在 .NET 中编写 SSIS 作业并让 SQL 服务器安排它。

但是,我在共享主机方面遇到了类似的问题,该问题非常严格。我所做的是创建一个页面,该页面在页面加载时运行该过程(使用查询字符串中的验证以确保安全)。然后,我使用我拥有的一台始终开启的机器来安排 Windows 任务计划程序(这是标准的 Windows 的一部分)来调用一些 VB 脚本,该脚本打开浏览器然后关闭它。

于 2012-05-01T15:07:57.187 回答