Измените физический путь приложения 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 должен быть настроен для работы в качестве пользователя с правами администратора в поле для выполнения этого сценария. В большинстве случаев это плохая идея по соображениям безопасности.