HTTP错误500.31-ANCM无法在IIS中找到本地依赖项

时间:2019-06-17 11:35:03

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

我尝试运行一个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.AppMicrosoft.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中有效。

12 个答案:

答案 0 :(得分:4)

如果这对其他人有帮助,当从 .net core 3.1 迁移到 .Net 5 时。

  1. here 安装 SDK。
  2. 将解决方案中的所有项目和网络更新为 <TargetFramework>net5.0</TargetFramework>
  3. 更新 nuget 包。

这一切在本地运行良好,但是,当我将更改推送到 Azure DevOps 时,管道中的所有一切都正常运行,Web 应用程序给出了与 OP 相同的错误。

我通过进入 Azure 门户解决了我的问题:

  1. 导航到应用服务刀片
  2. 设置下,转到配置
  3. General Settings 选项卡并将 Stack 设置为 .NET Core

enter image description here

答案 1 :(得分:3)

除了@Alexei的答案:

我使用Azure应用服务收到此错误。

转到https://<your-app>.scm.azurewebsites.net/detectors?type=tools&name=eventviewer或登录Azure门户并导航到“诊断和解决问题”以查看更好的错误描述。

enter image description here

在我的情况下,我出现了错误:

找不到“ aspnetcorev2_inprocess.dll”。异常消息:失败 将'D:\ local \ UserProfile.dotnet \ tools'添加到PATH环境 变量。将此目录添加到您的PATH中以使用随 “ dotnet工具安装”。

我不认识aspnetcorev2_inprocess.dll,因此决定检查wwwroot文件夹以寻找线索:

https://<your-app>.scm.azurewebsites.net/DebugConsole/?shell=powershell

在我的情况下位于D:\home\site\wwwroot。在这里,我可以看到几个我没想到的DLL。原来,我们的Azure DevOps管道发布了我们的解决方案而不是Web项目,并且我们合并了一个新的Azure Functions项目来开发分支。修复发布后,一切正常。

有用的链接以进行更多故障排除:

https://docs.microsoft.com/en-us/aspnet/core/test/troubleshoot-azure-iis?view=aspnetcore-3.1

答案 2 :(得分:3)

以下解决方案工作正常。

要解决此问题而无需重新安装iis:

  • 在web.config中,将AspNetCoreModuleV2更改为AspNetCoreModule。和 重新启动应用程序和池。然后停止应用程序和池。并更换回去。 运行应用程序和池。

答案 3 :(得分:2)

我有同样的问题。在我的情况下,问题出在dotnet publish命令中错误的RID中。我正在做一个独立的部署,然后将其下载到应用程序服务。

因此,命令应如下所示:

LastIndexOf

答案 4 :(得分:1)

只需添加我身上发生的事情-也许对其他人有帮助。

我已经从2. *迁移到3.1.5,但是我没有删除两个旧的nuget软件包。

当我摆脱它们时,我又重新部署了它,并且它起作用了。

(更确切地说,我删除了其中一个,并更新了另一个-Microsoft.EntityFrameworkCore.SqlServer 3.1.4而不是3.1.5)

答案 5 :(得分:0)

将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'

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

答案 6 :(得分:0)

当我从开发服务器部署到登台服务器时,我有相同的错误消息。我通过添加Nuget软件包 Microsoft.NetCore.App (版本2.2.8)解决了该问题。有时答案在错误消息中。

答案 7 :(得分:0)

我遇到了同样的问题,列出了工作站上丢失的软件包的名称。打开命令提示符,然后在下面运行以查看您的计算机上所有可用的软件包。

dotnet --info

它将列出所有已安装的.Net core sdks和运行时。然后,您将发现是否缺少所需的天气软件包。您可以从官方网站https://dotnet.microsoft.com/download/dotnet-core安装这些必需的软件包 重建您的解决方案,它应该可以工作。

答案 8 :(得分:0)

此错误可能有很多原因。要查找确切的错误,请在web.config中将“ stdoutLogEnabled ”更改为 true 。这将生成日志文件,您可以在其中找到确切的问题。就我而言,我错过了几个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-->

答案 9 :(得分:0)

要解决此问题而不重新安装iis,我找到了一些解决方案。希望它能帮助某人。 在 web.config 中,将 AspNetCoreModuleV2 更改为 AspNetCoreModule 。并重新启动应用程序和池。然后停止应用程序和池。并更换回去。运行应用程序和池。

答案 10 :(得分:0)

在尝试在IIS上运行Dot net core 3.1 WebApp时遇到相同问题的同时,找到了此文章。 安装这些对我有帮助: enter image description here

答案 11 :(得分:0)

同样的错误,发布后也是如此。

dotnet --info 显示 Microsoft.AspNetCore.App 有相关版本,但没有 Microsoft.NetCore.App

我支持一个 VS 更新,所以我运行了它并修复了它。

不确定,但想知道 Microsoft.AspNetCore.App 是否升级为发布,而 Microsoft.NetCore.App 没有。