Forum
Merhaba ,
Global icine bir servis yazın sunun gibi start degılse calıssın
protected void Application_Start(object sender, EventArgs e)
{
if (!PushService.IsStarted)
{
new PushService().Start();
}
}
sonra buna bır background worker classı yazın
public void Start()
{
try
{
if (m_BackgroundWorker == null)
{
ThreadStart start = new ThreadStart(BackgroundProcessing);
m_BackgroundWorker = new Thread(start);
m_BackgroundWorker.Start();
IsStarted = true;
}
}
catch (Exception ex)
{
MailMessage m = new MailMessage();
m.To.Add("[email protected]");
m.Subject = " SERVICE ERROR. LINE 50";
m.IsBodyHtml = true;
m.Body = ex.Message;
SendEmail(m);
}
finally
{
// Monitor.Exit(m_Lock);
}
}
gibi devam edin
Saygılarımla
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com
Merhaba ,
Global icine bir servis yazın sunun gibi start degılse calıssın
protected void Application_Start(object sender, EventArgs e)
{
if (!PushService.IsStarted)
{
new PushService().Start();
}
}
sonra buna bır background worker classı yazın
public void Start()
{
try
{
if (m_BackgroundWorker == null)
{
ThreadStart start = new ThreadStart(BackgroundProcessing);
m_BackgroundWorker = new Thread(start);
m_BackgroundWorker.Start();
IsStarted = true;
}
}
catch (Exception ex)
{
MailMessage m = new MailMessage();
m.To.Add("[email protected]");
m.Subject = " SERVICE ERROR. LINE 50";
m.IsBodyHtml = true;
m.Body = ex.Message;
SendEmail(m);
}
finally
{
// Monitor.Exit(m_Lock);
}
}
gibi devam edin
Saygılarımla
Hocam cevap için teşekkürler
C# wcf kullanıyorum. Global.asax yok yani. Şimdi durum şu
Şu anda hali hazırda çalışan bir wcf web servisim var ve winform uygulamam bu servisle db dene veri akışı sağlıyor buraya kadar normal herşey.
Ben aynı web servise mail gönderme eklemek istiyorum ve bunun belli bir zaman aralığında tekrar etmesini istiyorum. Şimdi öncelikle bu mümkünmü.Yani windows servisteki şu yapıyı web serviste oluşturamadım
private System.Timers.Timer _timer
public AppService()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
base.OnStart(args);
_timer = new System.Timers.Timer(30000);
_timer.Elapsed += _timer_Elapsed;
_timer.Start();
}
protected override void OnStop()
{
}
void _timer_Elapsed(object sender, ElapsedEventArgs e)
{
WriteTimeToFile();
}
örneğin override void OnStart(string[] args) fonksiyonu bulunmuyor .Veya yanlış yöntem izliyorum.Anlayamadım tam.
Hocam 🙂 Çalışan bir koddan verdim sana sağ click add global.asax
Yanı iis üzerinde çalışan bir web uygulaması neticede WCF sen oraya timer koyarsan belli bir müddet sonra sıkıntı yaşayabilirsin.
*** Tabi bu arada Siz WCF i ne olarak açtınız ? WCF app mi WCF Service APP mi o önemli.
bir email ulaştırırsanız özelden size bir uygulama kodu gonderebılırım .
Saygılarımla
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com
Tamam hocam teşekkürler ilginizden dolayı
WCF ten vazgeçtim.ASP Web servis şeklinde tasarladım.Ancak şöyle bir durum var localde 5 dakikada bir servis run oluyor ancak IIS in altına
atınca servis 5 dakika da bir run olmuyor.Sorun ne olabilir hocam sizce eksik nedir acaba.
ISS de servis çalışıyor normalde sağ click gözat deyince sorunsuz geliyor. Ancak run olayı yapmıyor.Fonksiyon sadece bi tane txt açmave değer yazma şeklinde.Ancak Localde bunu yapmasına rağmen IIS altında yapmıyor
Çok geniş bir durum.
1 - Yetkilendirme sorunu olabilir
2 - timerda session ddüştüğü zaman çalışmaz. Web servise bu tip bir durum yazmanız zaten servisin kullanılmasına aykırı.
3 - Web servisler json / xml yada diğer verilerin sizin diper cihazlarınızda ortak kullanılmasına yaradıgından bunu bir zamanlanmış görev olarak kullanmamanız daha doğru olur.
4 - kod muhtemelen bu saydığım sebeplerden bir hataya düşüyordur. try catch blokları arasına hatayı maıl atan yada txt yazan kod koyun.
5 - 4 uncu madde yerıne log4net de kullanabilirsiniz.
su anda aklıma spontan gelenler bunlar.
saygılarımla
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com