web-dev-qa-db-fra.com

Erreur HTTP 500.31 - ANCM n'a pas pu trouver les dépendances natives dans IIS

J'essaie d'exécuter une application Blazor.

Web.Server runs .NET Core 3.0
Web.Client runs .NET Standard 2.0
Web.Shared runs .NET Standard 2.0

Après avoir publié et téléchargé l'application sur IIS, j'obtiens cette erreur:

HTTP Error 500.31 - ANCM Failed to Find Native Dependencies
Common solutions to this issue:
The specified version of Microsoft.NetCore.App or Microsoft.AspNetCore.App was not found.

Event Viewer contient ce message d'erreur:

HTTP Error 500.31 - ANCM Failed to Find Native Dependencies

Quand je lance dotnet --info Je peux voir que j'ai tous les deux Microsoft.NetCore.App et Microsoft.AspNetCore.App contient la version 3: PS C:\Users\FooBar> dotnet --info .NET Core SDK (reflétant tout global.json): Version: 3.0.100-preview6-012264 Validation: be3f0c1a03

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.17763
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\3.0.100-preview6-012264\

Host (useful for support):
  Version: 3.0.0-preview6-27804-01
  Commit:  fdf81c6faf

.NET Core SDKs installed:
  1.0.4 [C:\Program Files\dotnet\sdk]
  2.0.0 [C:\Program Files\dotnet\sdk]
  2.1.101 [C:\Program Files\dotnet\sdk]
  3.0.100-preview6-012264 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.0.0-preview6.19307.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 1.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.0.0-preview6-27804-01 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.WindowsDesktop.App 3.0.0-preview6-27804-01 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

Diagnostics ASP.NET Core:

IMPORTANT: This report might contain confidential information. Mask such before sharing to others.
-----
System Time: 6/18/2019 12:50:58 AM
Processor Architecture: AMD64
OS: Microsoft Windows NT 10.0.17763.0
Server Type: IIS

Scan 31 installed module(s).
ASP.NET Core module version 2 is installed for .NET Core 2.2 and above: C:\Program Files\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll (13.0.19158.0).

Scan 86 registered handler(s).
* Found a valid ASP.NET Core handler as { Name: aspNetCore, Path: *, State: Enabled, Module: AspNetCoreModuleV2, Entry Type: Local }.
  Visual C++ runtime is detected (expected: 14.0, detected: 14.14.26405.0 built by: VCTOOLSREL): C:\WINDOWS\system32\msvcp140.dll.
Scan aspNetCore section.
    "processPath": dotnet.
    "arguments": .\Web.Server.dll.
    "hostingModel": inprocess.
"runtimeTarget": .NETCoreApp,Version=v3.0.
Please refer to pages such as https://dotnet.Microsoft.com/download/dotnet-core/2.2 to verify that ASP.NET Core version 13.0.19158.0 matches the runtime of the web app.

Pourquoi IIS lance-t-il cette erreur sur mon serveur?

Remarque: Cela fonctionne à partir de Visual Studio 2019.

9
Westerlund.io

J'ai le même problème. Dans mon cas, le problème était incorrect RID dans la commande dotnet publish. Je faisais un déploiement autonome, puis je l'ai téléchargé sur le service d'application.

Par conséquent, la commande devrait être comme ceci:

dotnet publish -c Debug -r win-x86 --self-contained
6
Igorgy

J'ai reçu la même erreur après la mise à niveau de mon projet ASP.NET Core de .NET Core 3.0 vers 3.1 et l'installation de Microsoft .NET Core 3.1.0 - Hébergement Windows Server.

Solution rapide (mais mauvaise)

changé le gestionnaire web.config de AspNetCoreModuleV2 à AspNetCoreModule et cela a bien fonctionné.

Bonne solution

Recherchez la cause sous-jacente en inspectant l'Observateur d'événements. Il peut y avoir plusieurs causes à cette erreur, mais dans mon cas, il n'a pas trouvé d'assembly lié à CodeAnalysis

Impossible de localiser les dépendances d'application. Assurez-vous que les versions de Microsoft.NetCore.App et Microsoft.AspNetCore.App ciblées par l'application sont installées.

Impossible de trouver "aspnetcorev2_inprocess.dll". Message d'exception: Erreur: un assembly spécifié dans le manifeste des dépendances d'application (myproject.deps.json) est introuvable: package: 'Microsoft.CodeAnalysis.CSharp.Workspaces', version: '3.3.1' chemin: 'lib/netstandard2. 0/Microsoft.CodeAnalysis.CSharp.Workspaces.dll '

Bien qu'ils soient liés, ces messages étaient dans différents événements.

2
Alexei

Il peut y avoir plusieurs raisons à cette erreur. Pour trouver l'erreur exacte, remplacez "stdoutLogEnabled" par true dans web.config. Cela générera un fichier journal où vous pourrez trouver le problème exact. Dans mon cas, j'avais raté quelques DLL.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="dotnet" arguments=".\MyWebsite.Web.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
    </system.webServer>
  </location>
</configuration>
<!--ProjectGuid: 20E974DC-FA0B-4957-8D1E-3466E348F82E-->
0
prisan

J'ai eu le même message d'erreur lorsque j'ai déployé de notre serveur de développement vers notre serveur de transfert. J'ai résolu le problème en ajoutant le package Nuget Microsoft.NetCore.App (version 2.2.8). Parfois, la réponse se trouve dans le message d'erreur.

0
CodeCaptain

J'ai eu le même problème qui indiquait le nom du package manquant sur mon poste de travail. Ouvrez l'invite de commande et exécutez ci-dessous pour voir quels sont tous les packages disponibles sur votre machine.

dotnet --info

Il répertoriera tous les sdks et runtime de base .Net installés. Ensuite, vous constaterez que les packages requis par la météo sont manquants ou non. Vous pouvez installer ces packages requis à partir du site officiel https://dotnet.Microsoft.com/download/dotnet-core . Reconstruisez votre solution et cela devrait fonctionner.

0
Omkar Manjare