我想从IIS上运行的另一个应用程序更改IIS 7上运行的应用程序的物理路径。我尝试通过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是一个空字符串。
有什么想法吗?
答案 0 :(得分:0)
必须将ASP.NET站点的AppPool配置为以具有管理员权限的用户身份运行,以执行该脚本。几乎在所有情况下,出于安全原因,这都是一个坏主意。