Requiremnet - 点击按钮,将在iis上创建一个站点。我正在传递一个名称,该名称将成为iis上站点的名称
我创建了一个powershell脚本来执行此操作。使用process.start,我想打开一个powershell.exe,并希望在其中执行我的代码。 代码...
System.Diagnostics.Process proc = new System.Diagnostics.Process();
Char[] chr = Password.ToCharArray();
System.Security.SecureString pwd = new System.Security.SecureString();
foreach (char c in chr)
{
pwd.AppendChar(c);
}
proc.StartInfo.FileName = "powershell.exe";
//proc.StartInfo.Arguments = powershellScriptCode; //It contains powershell script to create a new website in iis
proc.StartInfo.UserName = UserName; //Comes from config file
proc.StartInfo.Password = pwd; //Comes from config file
proc.StartInfo.Domain = Domain; //Comes from config file
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.UseShellExecute = false;
bool result = proc.Start();
当我在本地环境中运行此代码时,它运行成功并创建一个网站,但是当我在IIS上运行此代码(托管后),它无法在IIS上创建一个网站。所以我有什么类型的权限必需的。
答案 0 :(得分:0)
您需要更改应用程序池中的标识。转到IIS管理器 - >应用程序池 - >高级设置 - >过程模型 - >身份。将其更改为“本地系统”并重试(但请记住将其更改回去,除非您知道自己在做什么,安全方面;如果可行,请创建一个只具有所需权限的用户帐户。)