2012-05-02 31 views
8

VB komut dosyasını yürütmek için bir toplu iş dosyası var. Toplu iş dosyasını çift tıklayarak çalıştıracaktır, ancak C# ile aynı şeyi gerçekleştirdiğimde yerel ortamımda çalışıyorum ancak evreleme sunucusunda (windows server 2008r2) çalışmıyor, Bu yürütme için başvurmam gereken herhangi bir izin seviyesi var mı . Aşama sunucusundan çift tıklayıp toplu iş dosyasını yürütebilirim ...C# İzin sorunu toplu iş dosyası yürütme

Yönetici hesabına sunucuda giriş yaptım ve uygulamayı localhost olarak taradım.

gelen C# toplu dosyasının yürütme özlüyorum şey, benim yerel çevre üzerindeki çalışma ince olarak benim C# kodu ile herhangi bir sorun olduğunu düşünmüyorum

, yine şudur var mı benim C# kodu,

if (File.Exists(FileName*)) 
      { 
       System.Diagnostics.ProcessStartInfo p = new System.Diagnostics.ProcessStartInfo(FileName); 
       System.Diagnostics.Process proc = new System.Diagnostics.Process(); 
       proc.StartInfo.FileName = FileName; 
       proc.StartInfo.RedirectStandardError = true; 
       proc.StartInfo.RedirectStandardOutput = true; 
       proc.StartInfo.UseShellExecute = false; 

       proc.Start(); 

       proc.WaitForExit(); 

      } 
      else 
      { 
       lblMsg.Text = "Sorry unable to process you request"; 
      } 

* FileName toplu dosya yoludur. Ayrıca, hem toplu iş dosyasını hem de vb dosyalarını içeren klasörlere tam izin verdim.

+0

Uygulama havuzunuz için IIS'de kullanacağınız kullanıcı havuzunun çalışma dizini için izin vermeniz gerektiğine inanıyorum – Habib

cevap

3

Bunun için, uygulama havuzunuzun toplu iş dosyasına erişimi olan bir kullanıcı olarak çalıştırılması gerekir. IIS 7 veya IIS 6 için uygulama havuzu kimliğinizi nasıl değiştireceğinizi öğrenin.

+0

Yanıtınız için teşekkür ederiz Kartheek, sunucuya erişmek için Yönetici hesabını kullanıyorum. http: // localhost/gibi web sitesi. Uygulama havuzu kimliğini custome kipine ayarladım ve bu Yönetici hesabını ayarladım ve passowrd ancak hala çalışmıyor ve IIS7'yi kullanıyorum – sudheshna

2

Kartheek söylediklerimi genişletmek için:

bir uygulama havuzu hesabı olarak çalışacak IIS 7 uygulama havuzlarında
  • , IISAPPPOOL\AppPoolName iki durumda da Network Service
  • olarak çalıştırmak IIS 6 uygulama havuzlarında
  • , bu hesaplar Kullanıcının döküman klasörüne herhangi bir erişim hakkı yoktur ve (varsayılan olarak) sadece ortak veri depolarından okuyabilir. yani ne yapacağımı sadece emin sen uygulama havuzu hesabı için ihtiyaç yarasa dosyayı yürütme izinleri + okuma izni yapmak olduğunu -

Genellikle veriyi ayırmak yardımcı olduğu uygulama havuzu hesabını tutmak istiyorum. Ayrıca, yarasanın okuması/yazması gereken tüm dolgularda/klasörlerde de uygun izinlere ihtiyacınız olacaktır.

Bu sorunu gidermek için uygulamanızdaki herhangi bir şeyi değiştirmenize gerek yoktur; IIS uygulamasında, aslında web sitesinde oturmakta olan kullanıcı olarak gezinmek istemiyorsanız (yalnızca bir çeşit kimlik doğrulaması kullanıyorsanız gerçekten çalışır) .) Genellikle bu zaten kötü bir fikir - bu yüzden sadece izinleri ayarlamak en iyisidir. Genel bir kural olarak, bir web sunucusunda çalışırken izin/yürütme düzeylerini mümkün olduğunca düşük/kısıtlayıcı olarak tutmak istersiniz.

+0

Cevabınız için teşekkürler debracey, eminim sorun budur ama nasıl desem bilmiyorum herhangi bir şekilde bunu deniyorum. – sudheshna

+0

Sadece Windows Server'daki herhangi bir dosya için yaptığınız gibi izinleri işlemek için "NTFS izinlerini değiştirme [sunucu sürümü]" için arama yapın. – debracey

İlgili konular