c # - Kunne ikke bruge NDde.dll i Windows-tjenesten

Indlæg af Hanne Mølgaard Plasc

Problem



C # kode:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Threading.Tasks;
using NDde.Client;
namespace Test
{
    public partial class Service1 : ServiceBase
    {
        System.Timers.Timer timeDelay;
        int count;  
        public Service1()
        {
            InitializeComponent();
            timeDelay = new System.Timers.Timer();
            timeDelay.Elapsed += new System.Timers.ElapsedEventHandler(WorkProcess);  
        }

      public void WorkProcess(object sender, System.Timers.ElapsedEventArgs e)  
        {  
            string process = "Timer Tick " + count;  
            LogService(process);  
            count++;  
        }  
        protected override void OnStart(string[] args)  
        {  
            LogService("Service is Started");  
            timeDelay.Enabled = true;  
        }  
        protected override void OnStop()  
        {  
            LogService("Service Stoped");  
            timeDelay.Enabled = false;  
        }  
        private void LogService(string content)  
        {

            FileStream fs = new FileStream(@"C:TestServiceLog.txt", FileMode.OpenOrCreate, FileAccess.Write);  
            StreamWriter sw = new StreamWriter(fs);  
            sw.BaseStream.Seek(0, SeekOrigin.End);  
            sw.WriteLine(content+this.GetFirefoxUrl());  
            sw.Flush();  
            sw.Close();  
        }  

        public string GetFirefoxUrl()
        {
            DdeClient dde = new DdeClient("Firefox", "WWW\_GetWindowInfo");
            dde.Connect();
            string url = dde.Request("URL", int.MaxValue);
            dde.Disconnect();
            return url;
        }
    }
}


Hej, jeg har skrevet ovenstående kode, men jeg kan ikke udføre opgaven GetFirefoxUrl (). Dens giver mig følgende fejl. Hvordan kan jeg løse dette?



  Tjenesten kan ikke startes. NDde.DdeException: Klienten kunne ikke oprette forbindelse til 'Firefox | WWW\_GetWindowInfo'. Sørg for, at serverprogrammet kører, og at det understøtter det angivne servicenavn og emnetavnsparret. ---> NDde.Foundation.DdemlException: Klienten kunne ikke oprette forbindelse til 'Firefox | WWW\_GetWindowInfo'. Sørg for, at serverprogrammet kører, og at det understøtter det angivne servicenavn og emnetavnsparret.
         på System.Windows.Forms.Control.MarshaledInvoke (Kontrolopkald, Delegeret metode, Objekt [[]] args, Booleansk synkron)
         på System.Windows.Forms.Control.Invoke (Delegate method, Object [[]] args)
         på NDde.Advanced.DdeContext.DdeThread.Invoke (Delegate metode, Object [[]] args)
         på NDde.Client.DdeClient.Connect ()
         --- Slut på indre undtagelse stak spor ---
         på NDde.Client.DdeClient.Connect ()
         på Test.Service1.GetFirefoxUrl ()
         på Test.Service1.LogService (String-indhold)
         på Test.Service1.OnStart (String [[]] args)
         på System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback (Object state)



Jeg har kontrolleret de andre tråde relateret til dette ingen af ​​dem gav mig en løsning. Jeg håber, at nogle leder mig til at nå dette.

Bedste reference