我想使用powershell脚本在IIS中创建网站。我在窗口服务中编写此代码。无法在窗口服务中使用powershell创建网站
protected override void OnStart(string[] args)
{
string sitename = "rajesh";
//To create a New site
//Powershell script
string script = "cd\\\n" + "import-Module WebAdministration \n" + "IIS:\n" + "New-item iis:\\Sites\\rajesh -PhysicalPath C:\\inetpub\\wwwroot\test -bindings @{Protocol='http';bindingInformation='*:8080:" + sitename + "'}" + "\n add-content C:\\Windows\\System32\\drivers\\etc\\Hosts '127.0.0.1 " + sitename + "'";
string s = RunScript(script);
}
private static string RunScript(string scriptText)
{
Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.AddScript(scriptText);
pipeline.Commands.Add("Out-String");
Collection<PSObject> results = pipeline.Invoke();
runspace.Close();
StringBuilder stringBuilder = new StringBuilder();
foreach (PSObject obj in results)
{
stringBuilder.AppendLine(obj.ToString());
}
return stringBuilder.ToString();
}
但是当我尝试在服务列表启动此窗口的服务......这会引发错误..上LOCAT计算机启动服务和停止.....当我改变PowerShell脚本创建文件夹或一些小任务,然后这个窗口服务工作,但当我尝试通过这个PowerShell创建一个网站..它引发错误和窗口服务无法启动。这PowerShell脚本是在PowerShell中工作。但不是在窗口服务..
Sitename是可变的...为简单起见,我在这里硬编码....是我用“;”替换了“\ n”但它仍然给出了相同的错误....但是相同的代码成功运行控制台应用程序...我无法找到区别为什么它不能在窗口服务工作.. –
什么是错误? – Matt
有没有错误....当我尝试启动窗口服务,然后它无法启动。当我运行powershell脚本来创建窗口服务的启动方法中的网站..但是当我编写任何其他PowerShell代码除iis网站创建逻辑...然后我的窗口服务运行完美 –