在启动WCF服务时调用方法

时间:2011-10-12 12:54:51

标签: c# wcf

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

2 个答案:

答案 0 :(得分:4)

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

无论如何,无论你在哪里。打开(); 打开你的服务,你都可以初始化你的wcf代理并调用你的方法。

假设您的代理是FirstWcfProxy,那么您可以执行类似的操作,

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

firstWcfProxy.YourMethod();

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

答案 1 :(得分:3)

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;
    }
  }
}