web-dev-qa-db-fra.com

Comment déterminer si asp.net core a été installé sur un serveur Windows

Je configure divers serveurs Windows pour héberger les applications principales asp.net et je dois être en mesure de déterminer s'ils ont installé le pack d'hébergement asp.net.

https://docs.asp.net/fr/latest/publishing/iis.html#install-the-net-core-windows-server-hosting-bundle dit:

"Installer le pack .NET Core Windows Server Hosting sur le serveur . Le kit installera les modules .NET Core Runtime, .NET Core et Core. Le module ASP.NET Core. Le module crée le reverse-proxy entre IIS et le serveur Kestrel. "

Je suis en train de configurer un déploiement et je dois m'assurer que mon serveur est configuré pour pouvoir exécuter les applications principales asp.net.

En gros, je cherche une clé de registre ou un autre moyen de me dire si je dois exécuter le programme d'installation. (quelque chose de similaire à la façon dont nous dirions si les anciennes versions du framework sont installées, comme https://support.Microsoft.com/en-us/kb/318785 pour les versions précédentes)

11
weloytty

Vous pouvez rechercher la clé de registre Microsoft .NET Core 1.1.1 - Windows Server Hosting sous le chemin HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Updates\.NET Core comme dans la capture d'écran ci-dessous.

 enter image description here

Vous pouvez également utiliser PowerShell pour déterminer si la clé existe ou non.

$DotNETCoreUpdatesPath = "Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Updates\.NET Core"
$DotNetCoreItems = Get-Item -ErrorAction Stop -Path $DotNETCoreUpdatesPath
$NotInstalled = $True
$DotNetCoreItems.GetSubKeyNames() | Where { $_ -Match "Microsoft .NET Core.*Windows Server Hosting" } | ForEach-Object {
    $NotInstalled = $False
    Write-Host "The Host has installed $_"
}
If ($NotInstalled) {
    Write-Host "Can not find ASP.NET Core installed on the Host"
}

Et vous pouvez télécharger un exemple à partir de Comment déterminer l’installation d’ASP.NET Core sur un serveur Windows avec PowerShell .

10
Eric

Vous pouvez utiliser PowerShell pour vérifier si le module d'hébergement est enregistré avec IIS.

Dans la session powershell locale

Import-module WebAdministration
$vm_dotnet_core_hosting_module = Get-WebGlobalModule | where-object { $_.name.ToLower() -eq "aspnetcoremodule" }
if (!$vm_dotnet_core_hosting_module)
{
    throw ".Net core hosting module is not installed"
}

Si vous voulez faire dans la session distante, remplacez les 2 premières lignes par

Invoke-Command -Session $Session {Import-module WebAdministration}
$vm_dotnet_core_hosting_module = Invoke-Command -Session $Session {Get-WebGlobalModule | where-object { $_.name.ToLower() -eq "aspnetcoremodule" }}
7
Alex Filenkov

Si vous êtes autorisé à introduire des contraintes, une option consiste à n'autoriser que les "applications autonomes", car elles ne nécessitent aucune installation supplémentaire. Cela élimine également des problèmes tels que "quelle version est installée".

Si vous devez prendre en charge les «applications portables», vous pouvez simplement exécuter ce qui suit pour vérifier si dotnet.exe est disponible:

where dotnet

Vous pouvez ensuite vérifier la version:

dotnet --version

Cela vous permettrait également de vérifier la version de .NET Core une fois que cela devient une préoccupation.

4
Robert Paulsen

Vous pouvez regarder 

HKEY_LOCAL_MACHINE\LOGICIEL\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall {ab4f6e29-67a1-47d9-b2ab-43348a9bbae4}

et assurez-vous que "Microsoft .NET Core 1.0.0 - Hébergement Windows Server" est présent

0
weloytty

Vous pouvez également double-cliquer sur DotNetCore.1.0.1-WindowsHosting.exe.
Si le pack d'hébergement .NET Core Windows Server est déjà installé, la fenêtre d'ouverture comportera

  1. Modifier l'étiquette de configuration
  2. Boutons de réparation et de désinstallation

Boutons Réparer et Désinstaller et une étiquette Modify Setup.
 Microsoft .NET Core 1.0.1 - Windows Server Hosting Setup already installed

0
groch