Tag: scheduled tasks

ASP.NET站点 – 在特定时间触发一些代码

我正计划构建一个ASP.NET网站,该网站将位于共享的主机上。 我没有为此服务的Windows服务选项。 我可以选择哪个特定于我可以执行任务的网站,比如凌晨3点? 也许开始一个单独的线程,或什么? 谢谢。

Quartz vs“Reactive Extensions”

我正在为C#寻找一个调度库,很长一段时间我虽然“唯一”选项是Quartz.NET,它非常强大并且运行得很好。 但是,当我发现“Reactive Extensions”(RX – http://msdn.microsoft.com/en-us/data/gg577609 )时,我意识到它也可以执行与时间相关的操作,并具有本机.NET前端。 Rx在时间相关操作方面有哪些局限性? 我需要在特定的时间间隔内,在一段时间后重复发射任务。 有什么重大差异吗? (在性能等方面 – 例如根据我的经验,当有超过1500+的任务时,Quartz冻结 – 安排的任务)

启动隐藏的Internet Explorer

我的公司正在使用Sharepoint和ADFS。 但是,对于WebDav的使用,我们需要用户通过打开Internet Explorer并导航到两个站点来获取一些令牌。 然而,他们将每隔约30分钟丢失令牌,因此它必须是一个经常性的任务。 所以现在我的工作是: 用IE打开2个网站 每30分钟一次 不要惹恼用户 我目前的解决方案是“有点”工作,但我并不满意。 我只有VSExpress所以没有服务。 我有一个最小化的最大不透明度可见假Windows窗体。 我有一个GPO,它将EXE文件复制到计算机,然后创建一个定时作业,在登录后每30分钟启动一次。 然而,如果他们没有手动运行EXE,人们仍然无法访问webdav。 此外,每当EXE运行当前应用程序时,用户正在失去焦点,当您输入内容并且必须再次单击时,这有点烦人。我当前的代码如下所示: private void Form1_Load(object sender, EventArgs e) { MainMethod(); } private void MainMethod() { RegistryKey root = Registry.LocalMachine.OpenSubKey(@”SOFTWARE\Classes\InternetExplorer.ApplicationMedium\CLSID”, false); if (root!=null) { opensite(); Application.Exit(); } } private void opensite() { try { SHDocVw.InternetExplorer _ie1 = (SHDocVw.InternetExplorer)Activator.CreateInstance(Type.GetTypeFromProgID(“InternetExplorer.ApplicationMedium”)); SHDocVw.InternetExplorer _ie2 = (SHDocVw.InternetExplorer)Activator.CreateInstance(Type.GetTypeFromProgID(“InternetExplorer.ApplicationMedium”)); _ie1.Visible = […]

当由一组信用卡下的计划任务启动的进程在不同的一组Cred下运行另一个程序时,Windows是否有限制

所以我有一个简单的例子,我有app A,它有一些硬编码信用给用户X,一个本地管理员,然后它用这些凭证使用硬编码的绝对路径启动应用B. A和B以及dotnet控制台应用程序,但它们不与控制台交互,只是将信息写入文件。 当我以交互方式运行A(在我的Creds下,通过双击,或通过CMD.exe,或交互式PowerShell会话,它运行正常。成功调用B 当我通过一个计划任务运行它,其中A由于信用不足而且用用户X调用B时,Process.Start(mystartinfo)的错误代码是-1073741502或hex的0xC0000142,这意味着“应用程序无法正确初始化” 但是,如果我运行使用用户X凭据调用A的计划任务,它可以工作.. 我做了这个小测试主要是因为我在PowerShell中从计划任务或远程处理中执行“start-job -Credential”,或者在PowerShell中调用start-process或者在PowerShell中调用System.Diagnostic> Process.Start时看到类似的行为在相同的情况下。 起初我认为这是PowerShell中的一个错误,但它似乎更深。无论是Windows还是特别是Dotnet,我想知道这是否已知/记录,以及是否有任何变通方法。

如何使用c#获取计划任务列表?

我需要获取本地计算机中存在的计划任务列表。 如何在Windows XP中使用c#实现这一目标?

ClickOnce应用程序不是从调度程序启动的

我有一个批处理文件可以反弹clickOnce应用: @REM The odd PING statements are to create a 5 second wait @echo off taskkill /F /IM MyApp.exe PING 1.1.1.1 -n 1 -w 5000 >NUL “%USERPROFILE%\Path\To\My\App.appref-ms” 当我双击它时工作正常:该过程被杀死,然后在5秒后重新启动。 但是,如果我安排任务,它会终止进程,但不会重新启动它。 有人知道发生了什么吗? (该任务以我登录的用户身份运行,因为当我双击批处理文件并且一切正常时) 谢谢 瑞安

c#可靠的延迟/预定执行最佳实践

我正在进行的项目要求在某个时间执行一些处决。 我不确定处理这种情况的最佳方法是什么。 该方法必须能够在服务器重启/维护后继续存在。 方法调用必须以编程方式进行。 我正在考虑走这条道路: 我可以在数据库(甚至是消息队列)中有一个名为TaskTable的表,它可以具有TaskID(PK),TaskName(varchar),TaskStatus(枚举成功,失败,已调度)和TimeOfExecution。 但我需要一个Windows服务,定期轮询数据库以查找任何未执行的任务。 我面临的问题是:我将什么用作保存到数据库中的TaskName? class级名称? 类和方法名称ToString? 我怎样才能将字符串转换回来并以编程方式调用方法调用(我不希望有一个巨大的switch语句)? 一项持久性的任务如下所示。 所以我需要能够获得任务“SendIncompleteNotification”的名称,并将类名保存到数据库中并以回溯方式调用 public static Task SendIncompleteNotification { get { return new Task ( a => Console.WriteLine(“Sample Task”) , “This is a sample task which does nothing.” ); } } 现在的问题是我在编译方法/属性名称时遇到问题。 var type = ApplicationTask.SendIncompleteNotification.GetType(); //type.Name shows “Task`1” rather than SendIncompleteNotification 有没有更好的方法来处理这种情况? 谢谢! 更新:对不起,我的头在旋转。 我现在意识到我做错了是有另一个方法/属性来返回我的任务。 […]

哪个更适合用于定期工作:服务或计划任务?

我有一项需要每30秒运行一次的任务。 我可以做两件事之一: 编写一个运行任务一次的命令行应用程序,等待30秒,再次运行它然后退出。 我可以使用Windows中的计划任务安排此任务,以便每分钟运行一次 编写一个在每次运行之间等待30秒的情况下重复运行任务的服务。 在我看来,1号更简单,我会默认选择这样做。 我懦弱了吗? 我有理由将其作为服务而不是计划任务吗? 两者的优点和缺点是什么,你最后会选择哪一个?

C#console app在预定时间发送电子邮件

我在Windows Server 2003上运行了一个C#控制台应用程序,其目的是读取一个名为Notifications的表和一个名为“NotifyDateTime”的字段,并在达到该时间时发送一封电子邮件。 我通过任务计划程序安排它按小时运行,检查NotifyDateTime是否在该小时内,然后发送通知。 这似乎是因为我在数据库中有通知日期/时间,应该有一个比每小时重新运行这个东西更好的方法。 是否有一个轻量级的进程/控制台应用程序,我可以在服务器上运行,从表中读取当天的通知,并在它们到期时准确发布它们? 我认为服务,但这似乎有点矫枉过正。

安排计时器每月执行一次 – C#

我需要每月一次从SQL Server向MySQL传输一些数据。 我已经完成了这个转移的东西,但我不知道(我还没有在互联网上找到)如何设置一个计时器,每个月在特定日期执行此转移。 我不想仅以毫秒为单位设置计时器间隔,因为天数从一个月到另一个月不等。 任何帮助表示赞赏……