Измените физический путь приложения IIS 7 программно

Я хочу изменить физический путь приложения, работающего на моем IIS 7, с другого приложения, которое работает на моем IIS. Я пытался сделать это через appcmd.exe. Однако это кажется невозможным из-за отсутствия авторизации в приложении asp.net.

Это в основном то, что я пытаюсь сделать

   private static string Execute(string IISAppName, string NewIISPath)
   {
        var winPath = Environment.GetFolderPath(Environment.SpecialFolder.Windows);
        var appcmdPath = Path.Combine(winPath, "system32", "inetsrv/appcmd.exe");

        var arg = "set app /app.name:\"" + IISAppName + "\" /[path='/'].physicalPath:" + NewIISPath;

        ProcessStartInfo startInfo = new ProcessStartInfo(appcmdPath, arg)
        {
            WindowStyle = ProcessWindowStyle.Hidden,
            RedirectStandardOutput = true,
            UseShellExecute = false,
            CreateNoWindow = true
        };

        Process process = Process.Start(startInfo);
        var textResult = process.StandardOutput.ReadToEnd();
        process.WaitForExit();
        return textResult;
   }    

textResult является пустой строкой.

Есть идеи?

1 ответ

AppPool для сайта ASP.NET должен быть настроен для работы в качестве пользователя с правами администратора в поле для выполнения этого сценария. В большинстве случаев это плохая идея по соображениям безопасности.

Другие вопросы по тегам