以编程方式更改IIS 7应用程序物理路径

时间:2016-03-11 10:51:05

标签: c# asp.net iis iis-7 appcmd

我想从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是一个空字符串。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

必须将ASP.NET站点的AppPool配置为以具有管理员权限的用户身份运行,以执行该脚本。几乎在所有情况下,出于安全原因,这都是一个坏主意。