Windows Service Application sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.

Windows Service Application sorunu

İleti CiTiZEN » 04 Haz 2009 11:55

Merhabalar arkadaşlar, geçmişte birçok kez yapmama ragmen kaynak kodlarım da kaybolduğu için şu an sıkıntıya düştüm.Sorunum; başlıktanda anlaşılacağı üzere servis uygulamaları.Bir uygulamamız var bazı işlemleri yaptırmak istiyoruz yani zamanı gelince bir dll içerisindeki formu göstermek, uyarı mesajı vermek vs. gibi basit birkaç işlemi servis üzerinden yapmak istiyoruz ama bu uygulamayı ben açıyorum kendi kapanıyor bunun bir çaresi vardı hatırlayamadım ve bulamadım da bu konuda yardımlarınızı bekliyorum.

(Kullandığım sistemler; Win vista ultimate, delphi 2007)
procedure TForm.Button1Click(Sender: TObject);
begin
Application.Terminate;
End;
Kullanıcı avatarı
CiTiZEN
Üye
 
İleti: 865
Kayıt: 06 Oca 2008 04:15

Re: Windows Service Application sorunu

İleti CiTiZEN » 05 Haz 2009 02:23

arkadaşlar yokmudur kimsenin fikri veya kimse servis yazmadımı bu güne kadar hiç böyle bir durum gelmedmi başınıza?
procedure TForm.Button1Click(Sender: TObject);
begin
Application.Terminate;
End;
Kullanıcı avatarı
CiTiZEN
Üye
 
İleti: 865
Kayıt: 06 Oca 2008 04:15

Re: Windows Service Application sorunu

İleti vkamadan » 05 Haz 2009 03:07

Merhaba ,
Uygulamayı açıyorum kendi kapanıyor derken, servis uygulamanızı servislere install edip başlat dedikten sonra kendi kendine mi duruyor demek istediniz yoksa normal pencere uygulaması gibi çift tıklayıp çalıştırdığınızdamı hemen görünüp kayboluyor, eğer ikinci şıksa delphi servis uygulamalarını varsayılan "/install" parametresiyle servis yönetcisine install edip oradan çalıştırmanız gerekir servisler arka planda farklı bir mantıkla çalışır, bunu bir netleştirelim ona göre devam edelim.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
vkamadan
Kıdemli Üye
 
İleti: 1423
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı

Re: Windows Service Application sorunu

İleti CiTiZEN » 05 Haz 2009 06:08

Hocam servis.exe /install olarak yazıyorum 1 saniye çalışıyor daha sonra program çalışmayı durdurdu hatası alıyorum hizmetlerin içerisinde de uygulamayı bulamıyorum, bu servisin içerisinde hiçbir kod yok servisi canlı tutmak için içerisinde sürekli işlemler mi yapmak gerekli veya servisin sürekli çalışması için ne yapmam gerekli
procedure TForm.Button1Click(Sender: TObject);
begin
Application.Terminate;
End;
Kullanıcı avatarı
CiTiZEN
Üye
 
İleti: 865
Kayıt: 06 Oca 2008 04:15

Re: Windows Service Application sorunu

İleti vkamadan » 06 Haz 2009 08:13

Merhaba ,
Servisin sürekli çalışmayı sürdürmesi için ,
Servis modülünüzün OnExecute olayında
Kod: Tümünü seç
while not Terminated do ServiceThread.ProcessRequests(True);


Deyimini kullanıyor olmanız gerekir, kullanmıyorsanız eklemeniz sorunu çözecektir.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
vkamadan
Kıdemli Üye
 
İleti: 1423
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı

Re: Windows Service Application sorunu

İleti CiTiZEN » 06 Haz 2009 11:12

Hocam çok teşekkürler şu anda çift tıklayıp açtığım zaman çalışıyor ama servislere eklemeye kalkınca service.exe /install yazıp entere bastığım anda ilk çalışıyor sonra 1 saniye sürüyor hataya düşüyor kapanıyor sorun vistadan kaynaklanıyor olabilir mi veya yanlış yaptığım yerler mi var

çalışmayı durdurdu hatası aldığımda hata ayıkla butonuna tıklayınca şu şekilde bir uyarı gözükmekte:

Kod: Tümünü seç
An unhandled win32 execption occurred in ServiceApplication.exe [4068].
Just-In-Time debugging this exception failed with the following error:
No installed debugger has Just-In-Time debugging enabled.In Visual Studio, Just-In-Time debugging can be enabled from Tools/Options/Debugging/Just-In-Time.

Check the documentation index for Just-in-time debugging, errors' for more information


bu ayar kısmına girdikten sonra Tools/Options/Debugging'e, Just-In-Time şeklinde bir ayar bulamadım.Nerde yanlış yapıyorum
procedure TForm.Button1Click(Sender: TObject);
begin
Application.Terminate;
End;
Kullanıcı avatarı
CiTiZEN
Üye
 
İleti: 865
Kayıt: 06 Oca 2008 04:15

Re: Windows Service Application sorunu

İleti vkamadan » 06 Haz 2009 11:18

Merhaba ,
TServis ten türemiş sınıfınızın kodlarını buraya yapıştırımısınız, bir göz atalım.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
vkamadan
Kıdemli Üye
 
İleti: 1423
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı

Re: Windows Service Application sorunu

İleti CiTiZEN » 06 Haz 2009 11:51

Buyrun Hocam;

Kod: Tümünü seç
program ServiceAppForm;

uses
  SvcMgr,Dialogs,
  ServiceApp in 'ServiceApp.pas' {Service1: TService};

{$R *.RES}



begin
  if not Application.DelayInitialize or Application.Installing then
    Application.Initialize;
  Application.CreateForm(TService1, Service1);
  Application.Run;
end.


Kod: Tümünü seç
unit ServiceApp;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs,
  ExtCtrls;

type
  TService1 = class(TService)
    Timer1: TTimer;
    procedure ServiceExecute(Sender: TService);
    procedure Timer1Timer(Sender: TObject);
    procedure ServiceCreate(Sender: TObject);
  private
    { Private declarations }
  public
    function GetServiceController: TServiceController; override;
    { Public declarations }
  end;

var
  Service1: TService1;

implementation

{$R *.DFM}

procedure ServiceController(CtrlCode: DWord); stdcall;
begin
  Service1.Controller(CtrlCode);
end;

function TService1.GetServiceController: TServiceController;
begin
  Result := ServiceController;
end;

PROCEDURE SHOWDLLDESKTOP1;FAR;EXTERNAL'CDNS_DESKTOPS.DLL';
procedure TService1.ServiceCreate(Sender: TObject);
begin

end;

procedure TService1.ServiceExecute(Sender: TService);
begin
while not Terminated do ServiceThread.ProcessRequests(True);
end;

procedure TService1.Timer1Timer(Sender: TObject);
begin

end;

end.
procedure TForm.Button1Click(Sender: TObject);
begin
Application.Terminate;
End;
Kullanıcı avatarı
CiTiZEN
Üye
 
İleti: 865
Kayıt: 06 Oca 2008 04:15

Re: Windows Service Application sorunu

İleti vkamadan » 06 Haz 2009 12:00

Merhabalar ,
Kodlarınızda teorik olarak çalışmayı durduracak herhangi bir sorun görülmüyor, servis property leri arasında yer alan
Interactive özelliğine TRUE değeri vermelisiniz , ayrıca ServiceType özelliği stWin32 şeklide ayarlanmış olmalıdır. Ayrıca bir dipnot,
servis modülünüzün Name özelliğine verdiğiniz isim çok önemli, delphi varsayılan olarak "Service1" adını verir ,ve windows hizmet yöneticisine bu isimde kayıt olur, aynı isimde birden fazla servis windowsa yüklenemez, kısacası servisinize mutlaka ayırıcı bir isim vermelisiniz.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
vkamadan
Kıdemli Üye
 
İleti: 1423
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı

Re: Windows Service Application sorunu

İleti CiTiZEN » 06 Haz 2009 12:27

hocam dediklerinizi yaptım yine aynı sonucu verdi çift tıklayıp açınca sorun yok ama install ederken çalışıp kapanıyor service properties de şu şekilde

Kod: Tümünü seç
waithint | 5000
oldcreateorder | False
AllowPause | True
AllowStop | True
DisplayName | C_ServiceEx
ErrorSeverity | esNormal
Interactive | True
LoadGroup | Boş
Name | C_ServiceEx
PassWord | Boş
ServiceStartName | Boş
ServiceType | stWin32
StartType | stAuto
Tag | 0
TagID | 0


servisi de şu şekilde install etmeye çalışıyorum

Kod: Tümünü seç
CMD Komut satırında D sürücüsüne ve klasörlere geliyorum
D:\Temp Applications\ServiceApp\ServiceApp.exe /install /silent
procedure TForm.Button1Click(Sender: TObject);
begin
Application.Terminate;
End;
Kullanıcı avatarı
CiTiZEN
Üye
 
İleti: 865
Kayıt: 06 Oca 2008 04:15

Re: Windows Service Application sorunu

İleti vkamadan » 06 Haz 2009 12:44

Merhaba ,
Bir çok servis uygulaması yazdım, kimisi mail denetleyen kimisi yedekleme yapan benzer bir sorunla karşılaşmadım tüm servislerimi Vista sistemlerdede deneme şansım oldu herhangi bir sorun yaşamadım.
Sizin kodlarınızdada teorik olarak bir sorun görülmüyor, şu noktadan sonra yorum yapamıyorum maalesef.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
vkamadan
Kıdemli Üye
 
İleti: 1423
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı

Re: Windows Service Application sorunu

İleti CiTiZEN » 06 Haz 2009 12:46

Hocam yol gösterdiğiniz için çok teşekkür ederim sorunu çözdüğümde burada yayınlarım tekrar teşekkür ederim
kolay gelsin.
procedure TForm.Button1Click(Sender: TObject);
begin
Application.Terminate;
End;
Kullanıcı avatarı
CiTiZEN
Üye
 
İleti: 865
Kayıt: 06 Oca 2008 04:15

Re: Windows Service Application sorunu

İleti CiTiZEN » 06 Haz 2009 01:24

bu arada şunuda sormak istiyorum hocam bu servisi ben registry den çalıştırsam açılışta run altından bu olay ile ne gibi farkları olur yani install etmek ile run altından çalıştırmak arasında ne farklar vardır
procedure TForm.Button1Click(Sender: TObject);
begin
Application.Terminate;
End;
Kullanıcı avatarı
CiTiZEN
Üye
 
İleti: 865
Kayıt: 06 Oca 2008 04:15

Re: Windows Service Application sorunu

İleti deltas » 06 Haz 2009 04:42

hocam kodlarını windows 7 de denedim çalıştı. windows 7'de yanlış bilmiyorsam vista üzerine yazılmış. yani özellik olarak aynı. sadece install ederken "programı yönetici olarak çalıştır " özelliğini aktif etmem gerekti. yoksa hata verdi. kodları denediğim sistem;
delphi 2009
win7
Nice İnsanlar gördüm üstünde elbise yok;
Nice elbiseler gördüm içinde insan yok.
deltas
Üye
 
İleti: 353
Kayıt: 06 Mar 2004 01:08
Konum: Malatya...

Re: Windows Service Application sorunu

İleti CiTiZEN » 06 Haz 2009 05:19

evet hocam o şekilde yapınca sorunsuz çalıştı emeği geçen arkadaşlara çok teşekkür ediyor, kolaylıklar diliyorum
procedure TForm.Button1Click(Sender: TObject);
begin
Application.Terminate;
End;
Kullanıcı avatarı
CiTiZEN
Üye
 
İleti: 865
Kayıt: 06 Oca 2008 04:15


Programlama

Kimler çevrimiçi

Bu forumu görüntüleyenler: erdogan_ozkaya ve 4 misafir