首页 > 解决方案 > HTTP 错误 500.31 - ANCM 未能在 IIS 中找到本机依赖项

问题描述

我尝试运行一个Blazor应用程序。

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

发布并上传应用程序后,IIS我收到此错误:

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包含此错误消息:

HTTP Error 500.31 - ANCM Failed to Find Native Dependencies

当我运行时,dotnet --info我可以看到我同时Microsoft.NetCore.App包含Microsoft.AspNetCore.App版本 3:PS C:\Users\FooBar> dotnet --info .NET Core SDK(反映任何 global.json):版本:3.0.100-preview6-012264 提交: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

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.

为什么 IIS 在我的服务器上抛出此错误?

注意:它适用于 Visual Studio 2019。

标签: iis-10blazor.net-core-3.0

解决方案


在将我的 ASP.NET Core 项目从 .NET Core 3.0 升级到 3.1 并安装 Microsoft .NET Core 3.1.0 - Windows Server Hosting 后,我收到了同样的错误。

快速(但不好)修复

将 web.config 处理程序从更改AspNetCoreModuleV2AspNetCoreModule,它工作正常。

很好的修复

通过检查事件查看器找到根本原因。此错误可能有多种原因,但在我的情况下,它没有找到与 CodeAnalysis 相关的程序集

无法找到应用程序依赖项。确保安装了应用程序所针对的 Microsoft.NetCore.App 和 Microsoft.AspNetCore.App 版本。

找不到“aspnetcorev2_inprocess.dll”。异常消息:错误:未找到应用程序依赖项清单 (myproject.deps.json) 中指定的程序集:包:'Microsoft.CodeAnalysis.CSharp.Workspaces',版本:'3.3.1' 路径:'lib/netstandard2. 0/Microsoft.CodeAnalysis.CSharp.Workspaces.dll'

尽管它们是相关的,但这些消息是在不同的事件中。


推荐阅读