C# 创建Windows服务的指南?

C# 创建Windows服务的指南?,c#,.net,wcf,web-services,windows-services,C#,.net,Wcf,Web Services,Windows Services,我正在开发一个Asp.NETMVC应用程序,它将提供Windows服务 Windows服务基本上调用一个外部的基于Soap的web服务,它接收一些参数并返回数据,Windows服务将把这些数据存储到SQL server中。此windows服务将定期自动调用外部web服务 因为我对服务没有详细的了解。你能给我讲几句话吗 实现这一目标的技术是什么 可以使用WCF创建Windows服务吗?如果是,将使用什么协议 如何在开发/测试时运行Windows服务 如何安排Windows服务调用web服务 由于您

我正在开发一个Asp.NETMVC应用程序,它将提供Windows服务

Windows服务基本上调用一个外部的基于Soap的web服务,它接收一些参数并返回数据,Windows服务将把这些数据存储到SQL server中。此windows服务将定期自动调用外部web服务

因为我对服务没有详细的了解。你能给我讲几句话吗

  • 实现这一目标的技术是什么
  • 可以使用WCF创建Windows服务吗?如果是,将使用什么协议
  • 如何在开发/测试时运行Windows服务
  • 如何安排Windows服务调用web服务

  • 由于您已经在使用Microsoft技术,我建议您使用C#构建一个windows服务

    请查看该链接,该链接包含创建简单windows服务的所有详细信息:

    在C#中创建基本Windows服务

    您还需要创建一个计时器,用于调用web服务

    请看这里:

    更新

    1-实现这一目标的技术是什么

    -->C#

    2-可以使用WCF创建Windows服务吗?如果是,将使用什么协议

    -->不,它们是两个不同的概念。但您可以在托管windows服务中托管WCF服务。 请看这里: 我个人不喜欢这种方法

    3-如何在开发/测试时运行Windows服务

    -->您可以从管理工具启动/停止/暂停windows服务 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\services.lnk

    4-如何安排Windows服务调用web服务

    -->在windows服务“OnStart”方法中启动计时器,该方法将调用web服务(1)查看如何从System.ServiceProcess.ServiceBase创建类,尤其是OnStart()事件

    public class MyService : System.ServiceProcess.ServiceBase
    {
        protected override void OnStart(string[] args){}
    }
    
    (2) 无法通过wcf服务调用创建windows服务,但可以发出启动信号

    (3) 我使用Release | Debug开关允许在调试模式下调试服务启动,但是,这对我来说很简单

    static void Main()
    {
    #if (!DEBUG)
        System.ServiceProcess.ServiceBase[] servicesToRun;
        servicesToRun = new System.ServiceProcess.ServiceBase[] { new MyService() };
        System.ServiceProcess.ServiceBase.Run(servicesToRun);
    #else
        MyService service= new MyService();
        service.OnStart(null);    
        System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite);
    #endif 
    }
    

    (4) 您可能需要设置服务代理计划,以便按定时间隔运行。查看线程、线程池和计时器以获取刷新数据和服务运行时。

    Visual Studio非常适合创建windows服务。不确定您使用的是哪个VS版本。Windows服务模板和相关功能在Visual Studio的标准版或快速版中不可用。但是你仍然可以配置这些

    参考:

    WCF和Windows服务也不同;WCF是微软所有早期web服务技术的替代品。Windows服务是在没有UI的情况下运行的后台服务

    见:

    谢谢,但如果可能的话,您能回答我的问题吗。再次感谢。