Самостоятельный хостинг под Windows - PullRequest
0 голосов
/ 17 февраля 2011

Я пытаюсь создать службу Windows, которая активирует некоторый процесс на нашем сервере.

Я также добавил хост wcf для связи службы через программу пользовательского интерфейса и клиента wcf.

Но у меня есть некоторые проблемы с передачей данных из сервиса клиенту, поэтому класс данных является классом сервиса. И когда я получаю вызов, класс создается снова не с данными.

Я пытался дать ему экземпляр wcf singleton, но он не был создан в начале.

Пример:

partial class ProcessLoaderService : ServiceBase
{
    private InnerChannelHost _host;

    public ProcessLoaderService()
    {
        InitializeComponent();
    }

    protected override void OnStart(string[] args)
    {
        try
        {
            _host = new InnerChannelHost(componentUID);
        }
        catch (Exception e)
        {
            ErrorManager.WriteException("Process loader has failed to initialize.",e);
            Stop();
        }
    }

    protected override void OnStop()
    {
        // Add code here to perform any tear-down necessary to stop your service.
    }
}

[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple , 
                 InstanceContextMode = InstanceContextMode.Single, 
                 UseSynchronizationContext = false)]
class ProcessLoader : IInnerChannelService
{
    public void Run(string processLoaderUID)
    {
       // some data saved in members
    }

    public void GetComponents(ref ProcessContract[] processContracts)
    {
        // get the stored data
        processContracts = ConvertProcessToContract();
    }
}

Я мог бы реализовать класс как singleton, а интерфейс - в другом классе, вызывая методы singleton. какие-нибудь другие идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...