System.Diagnostics.Process

C# (C Sharp) veya Java ile ilgili konuları buraya yazabilirsiniz.
Cevapla
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4319
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

System.Diagnostics.Process

Mesaj gönderen aslangeri » 05 Mar 2010 05:12

s.a. arkadaşlar.
web servisi ile bur uygulamayı çalıştırmaya çalışıyorum.
çalışan program gönderdiğim parametrelere göre bir veritabanından kayıtları okuyup başka bir veritabanına yazmakta işlemin başarılı olup olmaması durumuna görede belirli alanları set etmekte.
aşağıdaki kodlar ile kendi makinemde başarılı sonuçlar almama rağmen servera yüklediğim zaman program çalışmamakta.
Kendi makinemde:
Web Servisleri çalışıyor.
Web servislerini çağıran test uygulaması çalışıyor.
Web servisinden çağırdığım uygulama çalışıyor.
Serverda ise
web servislerini publish ediyorum. (config dosyalarını ayarlıyorum)
Cağıracağım uygulamayı servera atıyorum.
test uygulamasını serverdaki servislere bağlayıp kendi makinemden serverdaki servisi çağırıyorum.
serverdaki görev yöneticisinden baktığım zaman uygulama çalışyor ancak herhangi bir işlem yapmıyor.
olay görüntüleyicisinde de
Uygulama Hatası : Uygulama düzgün olarak başlayamadı (0xc0000142). Sonlandırmak için TAMAM düğmesini tıklatın.
mesajını görüyorum.
ekrana herhangi bir mesaj gelmiyor.
zannımca program çalıştığı zaman program düzgün yüklenemiyor, bu mesajı verip tamam düğmesine basılmasını bekliyor. ama ekranda herhangi bir mesaj yok.
bir diğer nokta programı manuel çalıştırdığım zaman normal çalışyor.
servisdeki kodlar aşağıda. prg,prm1,prm2 parametre ile geliyorlar..
psi ini özelliklerini de kurcaladım ama bi sonuç alamadım.

Kod: Tümünü seç

            System.Diagnostics.Process program = new System.Diagnostics.Process();
            System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(prg);
            psi.Arguments = prm1 + " " + prm2;
            psi.UserName = Consts.KullaniciAdi;
            SecureString ss = new System.Security.SecureString();
            string s = Consts.KullaniciSifre;
            foreach (char item in s)
            {
                ss.AppendChar(item);
            }
            psi.Password = ss;
            psi.UseShellExecute = false;
            program.StartInfo = psi;
            program.Start();
            program.WaitForExit();
            return "ok";
Zannımca serverdaki kullanıcı yetkileri ile alakalı bir mevzu.
serverda iis6 yüklü. web servislerinin yuklendiği sanal dizinde yazma, çalıştırma vs. yetkileri verdim.
exe dosyasına iis_usr vs. yetkiler verdim. genede olmadı.
yardımcı olabilecek, fikir verebilecek kimse varmı?.
umarım karışık olmamıştır.
kolay gelsin arkadaşlar.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim

Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1526
Kayıt: 11 Tem 2003 03:55
Konum: İstanbul
İletişim:

Re: System.Diagnostics.Process

Mesaj gönderen lazio » 15 Mar 2010 06:25

Kod: Tümünü seç

Process.StartInfo.UseShellExecute = false;
Process.StartInfo.CreateNoWindow = true;
bu parametreleri de set ederek dene
Resim

..::|YeşilMavi|::..

Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4319
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: System.Diagnostics.Process

Mesaj gönderen aslangeri » 16 Mar 2010 09:20

shellexecute zaten false olarak set ettim.
createnowindow ile birkaç deneme yapmıştım ile shellexecute ile beraber denedimmi onu hatırlamıyorum.
şuan için exe dosyası sürekli açık duracak şekilde yaptık.
fırsat bulduğum zaman deniyeceğim.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim

fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Re: System.Diagnostics.Process

Mesaj gönderen fduman » 25 Nis 2010 05:40

Merhabalar arkadaşlar, çok zaman oldu :)

@aslangeri sorunun kaynağını bulabilmen için stacktrace'i de içeren detaylı bir log çıktısını EventLog'a yazdırmanı öneririm. Tahminimce process'i başlatırken hata aldığından şüpheleniyorsun. Orayı bir try catch içine alarak hatayı eventlog'a yazdır. Çalıştırdığın uygulamanın da hata alabileceğinden şüphelenerek ona da bir log mekanizması hazırlamanı öneririm.

Görüşmek üzere.

Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4319
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: System.Diagnostics.Process

Mesaj gönderen aslangeri » 26 Nis 2010 08:37

gerçektende uzun zaman oldu.
seni tekrar gördüğüme sevindim.
geçici olarak yukarda bahsettiğim şekilde hallettim.
geçici çözüm sıkıntı çıkarana kadar tekrar uğraşacak vakit bulabileceğimi zannetmiyorum.
ama bakmam gerekirse önerin aklımda olacak.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim

Cevapla