iis-10 - 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。
解决方案
在将我的 ASP.NET Core 项目从 .NET Core 3.0 升级到 3.1 并安装 Microsoft .NET Core 3.1.0 - Windows Server Hosting 后,我收到了同样的错误。
快速(但不好)修复
将 web.config 处理程序从更改AspNetCoreModuleV2
为AspNetCoreModule
,它工作正常。
很好的修复
通过检查事件查看器找到根本原因。此错误可能有多种原因,但在我的情况下,它没有找到与 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'
尽管它们是相关的,但这些消息是在不同的事件中。
推荐阅读
- ruby-on-rails - Rails 5.0 -> 5.1 问题:has_many 通过自定义 lambda 通过包含两次范围块生成无效查询
- ms-access-2016 - Update several Tbl Fields based on Start/End Dates
- c# - OxyPlot:SkiaSharp vs SharpDX
- service - Apache Ambari 自定义服务的重启要求
- kubernetes-helm - 使用 Helm 设置 Prometheus Ingress
- heroku - 当我回滚潜在客户数据库时,追随者数据库会发生什么
- azure - PowerShell:绑定资源组中的现有证书
- javascript - javascript中的问号后跟句号是什么意思?
- javascript - 如何使用基于两个集合文档的云函数触发器
- tsql - 无法通过 Max date 获得结果