Доступ запрещен при запуске файла .cmd из c# - PullRequest
0 голосов
/ 14 января 2020

У меня есть веб-приложение, которое размещено на сервере IIS7 на серверном компьютере с windows server 2008, приложение состоит из выполнения файла .cmd, но оно показывает следующую ошибку

System.ComponentModel.Win32Exception (0x80004005): Access is denied
   en System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
   en System.Diagnostics.Process.Start()
   en System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   en Ted.MNSProject.Reiniciar.Shutdown() en C:\Users\test\Desktop\Soluciones\MNS\Ted.MNS\Ted.MNSProject\Reiniciar.aspx.cs:línea 154
   en Ted.MNSProject.Reiniciar.btnSiReiniciar_Click(Object sender, EventArgs e) en C:\Users\test\Desktop\Soluciones\MNS\Ted.MNS\Ted.MNSProject\Reiniciar.aspx.cs:línea 59

Это мой код источника

       protected void btnSiReiniciar_Click(object sender, EventArgs e)
        {
            try
            {
                Shutdown();

                Log2("MNS OK");
            }
            catch (Exception ex)
            {
                Log2("MNS ERROR  " + ex.ToString());
            }

        }



public void Shutdown()
        { 
            string pathBAT = "C:\\Users\\pc1\\Desktop\\restartWindows.cmd";

            ProcessStartInfo startInfo = new ProcessStartInfo(pathBAT);

            startInfo.Verb = "runas";
            System.Diagnostics.Process.Start(startInfo);

        }

1 Ответ

1 голос
/ 15 января 2020

Когда вы развертываете его в IIS, весь код будет выполняться в «IIS Apppool», а файл, подобный cmd, будет получен через вашего аутентифицированного пользователя, такого как IUSR.

Поэтому, пожалуйста, попробуйте настроить пул приложений для локальной системы и установить для анонимного пользователя идентификатор пула приложений. enter image description here enter image description here

Если вы не хотите использовать localsystem в качестве идентификатора пула приложений, попробуйте устранить неполадки с помощью cra sh dump и монитор процесса. Он расскажет нам, как правильно предоставить разрешение.

...