Asp.net 代码在本地环境中工作,但在iis上托管时不工作
Requiremnet单击一个按钮,将在iis上创建一个站点。我正在传递一个名称,该名称将成为iis上站点的名称 我创建了一个powershell脚本来执行此操作。使用process.start,我想打开一个powershell.exe并在其中执行我的代码。 代码Asp.net 代码在本地环境中工作,但在iis上托管时不工作,asp.net,Asp.net,Requiremnet单击一个按钮,将在iis上创建一个站点。我正在传递一个名称,该名称将成为iis上站点的名称 我创建了一个powershell脚本来执行此操作。使用process.start,我想打开一个powershell.exe并在其中执行我的代码。 代码 当我在本地环境中运行此代码时,它成功运行并创建了一个网站,但当我在IISAfter主机上运行此代码时,它无法在IIS上创建网站。因此,我需要什么类型的权限。您需要更改应用程序池中的标识。转到IIS管理器->应用程序池->高级设置->流
当我在本地环境中运行此代码时,它成功运行并创建了一个网站,但当我在IISAfter主机上运行此代码时,它无法在IIS上创建网站。因此,我需要什么类型的权限。您需要更改应用程序池中的标识。转到IIS管理器->应用程序池->高级设置->流程模型->标识。将其更改为本地系统,然后重试,但记住要将其更改回本地系统,除非您知道自己在做什么,从安全角度考虑;如果可行,请创建一个仅具有所需权限的用户帐户。是否安装了Powershell.exe并可用?它是哪个Windows版本?谢谢你的回复…是的,powershell已经安装。我正在使用powershell的1.0版本和Windows server 2008 R2标准。相同的代码成功地在控制台应用程序和窗口窗体中运行。但在IIS上托管时不在网站中。这就是为什么我认为一定存在一些权限问题。你不能简单地尝试给出吗管理员是否可以访问您的网站并查看其是否有效,然后删除权限?然后你知道这是一个权限问题,因此可以创建一个具有最低所需权限的用户,因为不建议以管理员身份运行网站。很抱歉……但你能告诉我如何为我的网站授予管理权限……除powershell部分代码外的所有内容都不起作用……我仍然无法创建网站…尝试将身份更改为管理员,看看会发生什么。或者您可以启动另一个更简单的Powershell脚本吗?除了Powershell部分的代码外,其他所有代码都无法运行。我仍然无法创建网站…当我在本地环境中调试时,我可以使用Powershell.Diagistic.process创建网站。我可以打开Powershell窗口并成功创建我的网站,但当我在iis上托管时,它不起作用…当我调试托管站点时,我发现进程无法打开powershell窗口。没有powershell脚本在工作…甚至system.Diagistics.process也无法在托管环境中打开powershell窗口。但在本地环境中它是有效的。我正在测试将身份更改为管理…无法在身份中找到管理员。因此我使用自定义帐户并提供管理用户名和密码。但它不起作用
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();