[GELÖST]Web Service im Windows Dienst Problem

16. April 2012 13:04

Hey alle Zusammen,

ich habe da ein kleines Problem bei dem ihr mir hoffentlich weiter Helfen könnt. Ich habe in Nav einen WebService eingerichtet. Um genauer zu sein ganz einfach eine Codeunit erstellt in der ich eine Funktion habe die mir in einer Tabelle die aktuelle zeit einträgt.

Diesen WebService habe ich dann einmal mittels einer Konsolenanwendung in c# über einen Timer alle x-Sekunden aufgerufen. Das funktioniert auch soweit.

Mein Problem fing an das alles in einem Windows Dienst umzusetzen. Hierfür Poste ich einfach mal meinen Code. Vielleicht findet ihr dann ja sofort meinen Fehler.

Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Timers;

namespace MobileWebservice
{
    public partial class MobileWebservice : ServiceBase
    {

        System.Timers.Timer webServiceTimer;
       

        public MobileWebservice()
        {
            InitializeComponent();
          /*  if (!System.Diagnostics.EventLog.SourceExists("MySource"))
            {
                System.Diagnostics.EventLog.CreateEventSource("MySource", "MyNewLog");
            }
            MobileLog.Source = "MySource";
            MobileLog.Log = "MyNewLog";*/
            if (!System.Diagnostics.EventLog.SourceExists("Mobile"))
            {
                System.Diagnostics.EventLog.CreateEventSource("Mobile", "Mobile");
            }
            MobileLog.Source = "Mobile";
            MobileLog.Log = "Mobile";
        }

        protected override void OnStart(string[] args)
        {
            MobileLog.WriteEntry("Service is started.");
            webServiceTimer = new System.Timers.Timer(5000);
            webServiceTimer.Elapsed += new ElapsedEventHandler(OnWebServiceTimerEvent);
            webServiceTimer.Enabled = true;
            MobileLog.WriteEntry("Timer wurde gestartet");
        }

        protected override void OnStop()
        {
            MobileLog.WriteEntry("Service is stoped.");
        }

        private void eventLog1_EntryWritten(object sender, EntryWrittenEventArgs e)
        {

        }

        private void OnWebServiceTimerEvent(Object source, ElapsedEventArgs e)
        {
            MobileLog.WriteEntry("Timermethode läuft!");
            webServiceStart();       
        }

        private void webServiceStart()
        {
            MobileLog.WriteEntry("Webservice wird ausgeführt");
            localhost.WebServiceTest wsT;
            wsT = new localhost.WebServiceTest();
            wsT.UseDefaultCredentials = true;
            wsT.WebServiceMethod();
            MobileLog.WriteEntry("Webservice wurde ausgeführt");
        }
    }
}


Der Dienst läuft ganz normal durch. Die Ereignissmeldung "Webservice wird ausgeführt" wird auch noch ausgegeben. Ich habe mir auch noch zwischenzeitlich noch mehr Ereignissmeldungen ausgeben lassen und da ist mir aufgefallen das bis nach "wsT.UseDefaultCredentials = true;" alles erfolgreich ausgeführt wird, nur danach nicht mehr.

Ich wäre sehr erfreut, wenn mir jemand weiter Helfen kann.

Danke schonmal

Gruß Igel-own
Zuletzt geändert von Igel-own am 16. April 2012 15:17, insgesamt 1-mal geändert.

Re: Web Service im Windows Dienst Problem

16. April 2012 14:53

Hi,

unter was für einem Konto führst Du denn den Dienst aus? Hat das Konto auch die notwendigen Berechtigungen in NAV?

Volker

Re: Web Service im Windows Dienst Problem

16. April 2012 15:15

Wow, das wars schon, der Dienst war nur als Lokaler Benutzer angemeldet und hatte natürlich nicht die entsprechenden Rechte.

Dankeschön, und echt super Forum hier.