0

我对 Windows 服务很陌生。我希望我的 Windows 服务具有与我的 asp.net Web 应用程序相同的功能。

它没有任何用户界面。

我在这里简要介绍了我的 Web 应用程序,因此您可以指导我如何在 Windows 服务中进行操作。

  1. 根据特定条件从驻留在我的 Web 应用程序中的IMAGE文件夹中检索非常大的图像。

  2. 调整这些图像的大小并将其存储到数据库中。

  3. 检索存储在数据库中的调整大小的图像并将其存储到名为Large的服务器文件夹中,然后再次将该图像调整为另外 3 种不同的大小,并保存到它们各自大小的三个文件夹中,称为ListMini、* Thumb * 在服务器上。

现在我想构建具有相同功能的 Windows 服务,它每 15 分钟在服务器上运行一次。

希望现在我更清楚了。请在这方面帮助我。

我的 Web 应用程序代码运行良好。但我不知道将此代码放在我的 Windows 服务中的哪个位置,因为我对 Windows 服务非常陌生。

我尝试将该代码放在 onstartoncontinue方法上,但不允许启动该时间服务。它给出了错误消息,此服务无法在您的本地计算机上启动。

4

2 回答 2

0

OnStart必须在 30 (??? iirc) 秒超时内完成。我建议分拆一个线程OnStart来完成这项工作,以便OnStart立即完成。

    protected override void OnStart(string[] args)
    {
        (new Thread(() => DoLongRunningStartupWork()){IsBackground = true})
           .Start();

    }

    void DoLongRunningStartupWork()
    {
        //actual startup code
    }
于 2013-03-13T14:04:24.140 回答
0

您将需要创建一个从方法中调用的OnStart方法。该OnStart方法纯粹用于在服务启动时配置服务。你会想要这样的东西:

void OnStart()
{
    DoSomething();
}

void DoSomething()
{
     // Your code here
}

我见过人们使用Threads 来启动 Windows 服务,然后Thread完成所需的工作。

于 2013-03-13T14:04:39.870 回答