Мне нужна помощь для решения проблемы автоматического развертывания. Net Базовое веб-приложение Api на сервере. Как вы знаете, невозможно переписать .dll
, если вы не остановите AppPool
раньше, и в IIS
нет решения для этого. На самом деле, используя PowerShell
, я могу выполнить скрипт, чтобы сделать то, что мне нужно, скрипт показан ниже: PowerShell script
На самом деле мне нужно консольное приложение для выполнения той же работы, я обнаружил, что Я могу использовать Microsoft.PowerShell.SDK
для реализации решения.
public static void RunC()
{
string us = "xxxxxxxxxxxxx"; //User
string pw = "xxxxxxxxxxxxxxxx";//Passwprd
string sv = "xxx.x.xx.xxx";//Server
string apppoolname = "xxxxxxxxxxxxx";
StringBuilder script = new StringBuilder();
//Creazione script PS
script.Append("$password = ConvertTo-SecureString \"" + pw + "\" -AsPlainText -Force" + Environment.NewLine);
script.Append("$user = \"" + us + "\"" + Environment.NewLine);
script.Append("$cred = New-Object System.Management.Automation.PSCredential ($user,$password)" + Environment.NewLine);
script.Append("Enter-PSSession -ComputerName \"" + sv + "\" -Credential $cred" + Environment.NewLine);
script.Append("Import-Module webadministration");
script.Append("Stop-WebAppPool \"" + apppoolname + "\"");
Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.AddScript(script.ToString());
//pipeline.Commands.Add("Out-String");
Collection<PSObject> results = pipeline.Invoke();
StringBuilder sb = new StringBuilder();
foreach (PSObject pSObject in results)
{
sb.AppendLine(pSObject.ToString());
}
Console.WriteLine(sb.ToString());
}
Но я получил сообщение об ошибке на изображении, швы Модуль не залит или что-то подобное ... кто-то может мне чем-то помочь?
Спасибо :-)