SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Problem mit Erstellung eines Dienstes

Unbeantwortet Dieser Beitrag hat 3 Antworten

Ohne Rang
455 Beiträge
Andreas St. erstellt 31 Mai 2010 13:42
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

 

ich möchte gerne einen Windows-Dienst erstellen, in dem eine Liste abgefragt wird. Ich habe bereits einen Dienst erstellt. Nur leider wird dieser immer nur 1x ausgeführt.

Innerhalb des Dienstes habe ich einen Thread aufgemacht, indem folgendes läuft:

 public static int GetItemID()
        {
            int id = 0;
            string siteUrl = "http://server/";
            string website = "Projects";
            string projectListName = "All Projects";

            try
            {
                using (SPSite mySite = new SPSite(siteUrl))
                {
                    SPQuery qry = new SPQuery();

                    string camlquery = GetQuery();

                    qry.Query = camlquery;

                    using (SPWeb myWeb = mySite.OpenWeb(website))
                    {

                        SPList myList = myWeb.Lists[projectListName];

                        DataTable listItemsTable = myList.GetItems(qry).GetDataTable();

                        //mache irgendwas...      

                    }                    
                }
            }
            catch (Exception e)
            {
            }
    
                        
            return id;
        }

 

Hat jemand eine Idee, warum der Dienst nur 1x ausgeführt wird? Rufe ich in meinem Thread diese Methode nicht auf, so läuft der Dienst durch.

 

Danke und Gruß!

Andreas

Alle Antworten

Ohne Rang
168 Beiträge
niceoldlady Als Antwort am 31 Mai 2010 14:43
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

der wird genau einmal ausgeführt weil du den entweder wiederkehrend definieren musst (jeden tag 7.00 Uhr) oder du musst eine Schleife machen for(;;){ // stuff System.Threading.Thread.Sleep(1000);}

Ohne Rang
455 Beiträge
Andreas St. Als Antwort am 31 Mai 2010 15:11
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das sollte doch so sein. Wenn ich den SP-Teil wegglasse, dann wird der ja auch immer wieder aufgerufen....

 

 

protected override void OnStart(string[] args)
        {
            base.OnStart(args);

            TimerCallback handler = new TimerCallback(timer1_Tick);
            System.Threading.Timer timer = new Timer(timer1_Tick, null, 10000, 60000);
            
            
        }

void timer1_Tick(object obj)
        {
            this.EventLog.WriteEntry("This Timer has been ticked!");
            //Methode aufufen, die Daten aus SP abfruft            
        }

Ohne Rang
168 Beiträge
niceoldlady Als Antwort am 31 Mai 2010 15:23
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

GetItemIDder quelltext hat oben gefehlt ;)

ich schlage dann debuggen vor. vielleicht ist was nicht thread-safe ?!!? und mal die methode GetItemID nicht static machen. Die Ideen habe ich spontan.