![](/img/trans.png)
[英]ASP.NET Core 3.1 HTTP Error 500.32 - ANCM Failed to Load dll on IIS
[英]HTTP Error 500.32 - ANCM Failed to Load dll after deploying a Self Contained .Net Core 3.1 App to Azure
如果上述内容不能解决您的问题,并且您在https://github.com/dotnet/aspnetcore/issues/8980 中错过了它,但这解决了我的问题。
Per DimaSUN 在 2019 年 6 月 25 日评论:
ASP.NET Core 2.2 或更高版本:对于使用进程内托管模型的 64 位 (x64) 自包含部署,禁用 32 位 (x86) 进程的应用程序池。
如何:在 IIS 中打开应用程序池。 选择网站 > 高级设置。 将 32 位应用程序从 True 设置为 False。
对于 .net 5,问题是相同的,我必须从 web.config 中删除 hostsModel="inprocess" 所以它阅读以下内容
<?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=".\Hub.WebApi.exe" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" />
</system.webServer>
</location>
</configuration>
您是否尝试过在您的应用服务中添加 .Net Core 3.1 扩展? 开发工具 -> 扩展 -> 添加 -> Asp.Net Core 3.1 以及您需要的运行时。
我昨天遇到了同样的问题,添加扩展后,问题就消失了。
如果它可以帮助其他任何人......我的Program.cs
仍然有UseKestrel()
(考虑到其他人提到托管模型是罪魁祸首,这是有道理的)。
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder => {
webBuilder.UseKestrel(k => k.AddServerHeader = false);
webBuilder.UseStartup<Startup>();
});
移除 Kestrel(自然地)可以缓解这个问题。
我最终也在Kudu 调试控制台中看到了这一点......
应用程序在 IIS 进程内运行,但未配置为使用 IIS 服务器
与此错误提供的故障排除提示完全无关,这也可能是由于应用程序池帐户对.NET Core
应用程序源目录的权限不足造成的。
当服务帐户只有读取权限时,我收到此错误。 添加读取和执行权限后(因为应用程序是.exe
),错误消失了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.