当WCF服务启动时调用一个方法

本文关键字:一个 方法 调用 WCF 服务 启动 | 更新日期: 2023-09-27 18:11:08

我有一个WCF服务(VS 2010, . net 4.0)作为Windows服务托管。我想做的是:我想要一个服务中的方法,当服务启动时执行。

当WCF服务启动时调用一个方法

我不确定你是如何使用Windows Service来托管你的WCF服务的,但我希望像@SSamra描述的那样。

无论如何,在. open ();这一行下面,你可以初始化wcf代理并调用你的方法。

假设你的代理是FirstWcfProxy,然后你可以这样做,

var firstWcfProxy = new FirstWcfProxy(); 
// or IFirstWcfService firstWcfProxy = new FirstWcfProxy();
firstWcfProxy.YourMethod();

编辑:如果希望确保在服务启动时立即调用该方法,请在sHost.Open();下面初始化代理,并在那里调用该方法,就像我上面描述的

how about
    using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.ServiceProcess;
using System.ServiceModel;
namespace Windows_Service
{
  public partial class WCFWindowsService : ServiceBase
  {
    ServiceHost m_serviceHost;
    protected override void OnStart(string[] args)
    {
      m_serviceHost = new ServiceHost(typeof(FirstWcfService.Service));
      m_serviceHost.Open();
    }
    protected override void OnStop()
    {
      if (m_serviceHost != null)
      {
        m_serviceHost.Close();
      }
      m_serviceHost = null;
    }
  }
}