Ska knåpa ihop en webbapplikation (asp.net) som schemalaggd ligger och hämtar data från en databas. En gång i veckan skall den hämta data utan att en användare skall göra någonting (om denne inte själv vill det). Har kollat på komponenten Timer och undrar om mitt fall skulle gå att lösa med den, och behövs Meta Refreshen också? Låter inte som någon riktigt bra lösning faktiskt... En egen server (windows 2000). Varför är det inte en bra lösning. Kan man göra på något annat sätt? Vad händer om ingen är inne på servern då du vill att det som ska köras måste köras? Vet inte alls om det här är den bästa lösningen (om inte så får ni gärna komma med förslag) men jag hade ett behov i en av mina webapplikationer att den en gång om dan skulle kolla ett datum i en databas (går inte in på detaljerna här :-)) och om dagens datum överrensstämde med det i databasen så skulle vissa saker göras i databasen, några mail skickas m.m. Windows service körs på valfri användare (inte användare som sitter vid datorn med andra ord) antingen automatiskt eller manuell start. Tack för era svar Martin och Oskar.. Båda två låter ju intressant. Skulle vara väldigt uppskattat om ni har någon info om både windows service och console application (samt scheduled task). Ja jag har Visual Studio. Ang. windows service gör du då följande: Tack för svaret Oskar. Ska sätta tänderna i detta direkt. Återkommer i annan tråd om funderingar uppstår.Timer och Refresh
Ex. Varje tisdag kl 06:00 skall applikationen hämta data från en databas och skicka till en annan, samt presentera datat för en klient om denne skulle vilja det.Sv: Timer och Refresh
Vad är det för server, webbhotell eller egen?Sv:Timer och Refresh
Sv: Timer och Refresh
Eftersom att det handlar om en egen server låter det som en bättre idé att satsa på att skriva något som kallas Windows services. Det är ungefär som att skriva ett windowsprogram fast istället för att skriva ett program som kräver att någon är inloggad så startas det automatiskt med datorn och är helt osynligt.
Ett sådant program är enkelt att skriva i .net.
Har du vs.net? Om inte så ska jag se om jag kan gräva fram lite dokumentation om hur man görSv:Timer och Refresh
Det jag gjorde då var att jag skapade en liten Console Application som jag sen satte upp som ett Scheduled Task på vår webbserver så att den kör igång den lilla applikationen en gång om dan. Nåt liknande kanske skulle kunna funka här?
Kanske skulle gjort den som en Windows Service istället? Nån som kan förklara skillnaden?Sv: Timer och Refresh
scheduled mojset är också någon service fast det är windows egna service som körsSv:Timer och Refresh
MVH/ ErikSv: Timer och Refresh
1) Skapa ett nytt c# (du har inte sagt vilket språk du kör så jag antar att det är c#) projekt utav typen Windows Service.
2) När projektet skapas kan du ta och ändra filnamn på Service1.cs till något mer passande. Se även till att dubbelklicka på din .cs-fil så att den öppnas i designläge. Ändra nu egenskaperna för servicen så att den får ett bättre och mer passande namn.
3) Kompilera projektet. Du kommer få ett kompileringsfel pga. en bugg i designern. Gå till den raden där felet uppstår och ändra från Service1 till det namn du valde i koden.
4) Om du nu tittar på koden så ser du att det finns två st metoder, OnStart samt OnStop (tror de hette så, start resp. stop var det iaf.) Start anropar när servicen ska startas. Stop anropas när den ska stoppas.
5) I start kan du t.ex. lägga in en System.Timers.Timer som du sätter på ett ganska långt intervall om du vill. I stop ser du självklart till att stoppa samma timer.
6) När du sedan vill debugga det här så får du vända lite ut och in på dig... Den ena varianten är att du i koden anropar System.Diagnostics.Debugger.Break(); vilket kommer kasta upp en ruta om att ansluta en debugger. Den andra är att du i den main-metod som finns (det finns alltid en sådan även om den är gömd...) kollar vilka parametrar som finns medskickade. Där kan du göra ett enkelt test, om du vill debugga så skickar du med en parameter så att istället för att köra den kod som står där ifrån början så gör du istället en ny instans av din service-klass som du sedan manuellt anropar någon trevlig start-metod i
Om du istället vill göra en console-app och köra schedules så är det bara att skriva en helt vanlig console-app.Sv:Timer och Refresh