【发布时间】: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
我已经尝试了以下所有方法:
- 将“AspNetCoreModuleV2”更改为“AspNetCoreModule” Web.config。
- 尝试将 AspNetCoreHostingModel=InProcess 切换为 RuntimeFrameworkName=Microsoft.AspNetCore.App 在我的 Web.csproj 文件中。
- 清理并手动删除 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