【问题标题】:DotNetCore 2.2 App with IIS not working - HTTP Error 500.0 - ANCM In-Process Handler Load Failure带有 IIS 的 DotNetCore 2.2 应用程序无法正常工作 - HTTP 错误 500.0 - ANCM 进程内处理程序加载失败
【发布时间】:2020-01-06 13:42:27
【问题描述】:

我有一个尝试通过 IIS 运行的 DotNet Core 2.2 应用程序。但是,我收到以下错误:HTTP Error 500.0 - ANCM In-Process Handler Load Failure when I try to load the app in my browser.

在检查日志时,它会显示以下内容:

Error:

  An assembly specified in the application dependencies manifest (blablabla.deps.json) was not found:
    package: 'AutoMapper.Extensions.Microsoft.DependencyInjection', version: '7.0.0'
    path: 'lib/netstandard2.0/AutoMapper.Extensions.Microsoft.DependencyInjection.dll'

但我认为这有点牵强。

以下是 dotnet --info 的输出:

.NET Core SDK (reflecting any global.json):
 Version:   2.2.401
 Commit:    729b316c13

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.17134
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\2.2.401\

Host (useful for support):
  Version: 2.2.6
  Commit:  7dac9b1b51

.NET Core SDKs installed:
  2.2.401 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.2.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.2.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.2.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

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

我已经尝试了以下所有方法:

  1. 将“AspNetCoreModuleV2”更改为“AspNetCoreModule” Web.config。
  2. 尝试将 AspNetCoreHostingModel=InProcess 切换为 RuntimeFrameworkName=Microsoft.AspNetCore.App 在我的 Web.csproj 文件中。
  3. 清理并手动删除 bin、obj 和 .vs 文件夹

我的应用程序池设置为“无托管代码”(正如指南所说的那样)。由于我浏览了有关此问题的每个论坛帖子和 github 问题,因此对于该怎么做有点不知所措。此外,它运行在与我具有完全相同配置的同事机器上。

但有一点需要注意,如果他创建了他的应用程序池的副本(相同的设置,基本和高级,只是名称不同),并尝试在其上运行它,它也不起作用,他得到了和我一样的错误。它仅适用于名为“Core AppPool”的应用程序池,该应用程序池在安装 Windows 服务器托管或 SDK 时自动添加到 IIS(不确定是哪个)。

【问题讨论】:

  • 如果使用自包含部署怎么办?
  • 我建议您也可以检查您的应用程序池标识,以获得足够的权限来访问核心 dll 文件夹和您的包 dll 文件夹。
  • @BrandoZhang 原来是这个问题。应用程序池无权读取 Packages 文件夹。不知道为什么它没有像在另一台机器上那样自动应用权限。不确定这里的礼仪是什么,但如果你想把它作为主要评论,我会把它标记为答案。谢谢。
  • 我遇到了这个确切的问题。我已经在文件资源管理器中给予了许可。但是,当我在 IIS 控制面板中使用“编辑权限”菜单执行相同操作时,它就起作用了。奇怪。
  • 这对我也有用,这是相关文档的链接 FYI docs.microsoft.com/en-us/iis/manage/configuring-security/…

标签: asp.net-core iis .net-core


【解决方案1】:

您的应用程序池身份似乎没有足够的权限来访问您的包文件夹。

我建议您可以尝试通过设置文件夹的安全性来设置具有足够权限的包文件夹。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-22
    • 2021-08-15
    • 2020-08-24
    • 1970-01-01
    • 2019-09-07
    • 1970-01-01
    • 2019-08-25
    相关资源
    最近更新 更多