[英]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.