Mengeksekusi file batch dari masalah Izin C#

Saya memiliki file batch untuk menjalankan skrip VB. Saat menjalankan file batch dengan mengklik dua kali akan berfungsi, Tetapi ketika saya telah melakukan hal yang sama dengan C#, itu berfungsi di lingkungan lokal saya tetapi tidak di server pementasan (server windows 2008r2), Apakah ada tingkat izin yang perlu saya terapkan untuk eksekusi ini . Dari server pementasan saya dapat mengklik dua kali dan menjalankan file batch...

Saya telah masuk ke server dengan akun Administrator dan menelusuri aplikasi sebagai localhost.

Apakah ada sesuatu yang saya lewatkan pada eksekusi file batch dari C#,

Saya rasa tidak ada masalah dengan kode C# saya karena berfungsi dengan baik di lingkungan lokal saya, berikut ini adalah kode C# saya,

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";
            }

*NamaFile adalah jalur ke file batch. Saya juga telah menetapkan izin penuh ke folder yang berisi file batch dan file vbs.


person sudheshna    schedule 02.05.2012    source sumber
comment
Saya yakin Anda harus menentukan pengguna di IIS agar kumpulan aplikasi Anda memiliki izin pada direktori kerja skrip batch   -  person Habib    schedule 02.05.2012


Jawaban (2)


Agar ini berfungsi, kumpulan aplikasi Anda harus dijalankan sebagai pengguna yang memiliki akses ke file batch. Periksa cara mengubah identitas kumpulan aplikasi Anda untuk IIS 7 atau IIS 6.

person Kartheek N    schedule 02.05.2012
comment
Terima kasih Kartheek atas balasan Anda, saya telah menggunakan akun Administrator untuk mengakses server dan saya mengakses situs web sebagai localhost. Saya telah mengatur identitas kumpulan aplikasi ke mode kustom dan mengatur akun Administrator dan kata sandi ini tetapi masih tidak berfungsi, dan saya menggunakan IIS7 - person sudheshna; 03.05.2012

Untuk memperluas apa yang dikatakan Kartheek:

  • Di kumpulan aplikasi IIS 7 dijalankan sebagai akun kumpulan aplikasi, IISAPPPOOL\AppPoolName
  • Di IIS 6 kumpulan aplikasi dijalankan sebagai Network Service
  • Dalam kedua kasus tersebut, akun ini tidak memiliki akses apa pun ke folder dokumen pengguna dan (secara default) hanya dapat membaca dari penyimpanan data umum.

Umumnya Anda ingin mempertahankan akun kumpulan aplikasi karena membantu memisahkan data -- jadi yang akan saya lakukan hanyalah memastikan Anda memberikan izin baca+eksekusi pada file bat yang Anda perlukan untuk akun kumpulan aplikasi. Anda juga memerlukan izin yang tepat pada file/folder mana pun yang perlu dibaca/ditulis oleh kelelawar.

Anda tidak perlu mengubah apa pun di aplikasi Anda untuk memperbaiki masalah ini, kecuali Anda ingin aplikasi IIS menyamar sebagai pengguna yang sebenarnya duduk di situs web (ini hanya berfungsi jika Anda menggunakan beberapa bentuk otentikasi.) Umumnya ini itu ide yang buruk -- jadi sebaiknya sesuaikan saja izinnya.

Sebagai pedoman umum, ketika bekerja pada server web Anda ingin menjaga tingkat izin/eksekusi serendah/membatasi mungkin.

person debracey    schedule 02.05.2012
comment
Terima kasih debracey atas jawaban Anda, saya yakin ini masalahnya tetapi saya tidak tahu bagaimana menyelesaikannya, apa pun yang saya coba lakukan. - person sudheshna; 03.05.2012
comment
Itu hanya memanipulasi izin dengan cara yang sama seperti yang Anda lakukan untuk file lain di Windows Server, cari-cari untuk mengubah izin NTFS [versi server] - person debracey; 03.05.2012