ASP.NET 核心托管 - 错误内部服务器错误处理程序 "aspNetCore" 在其模块列表中有一个错误模块 "AspNetCoreModule"

ASP.NET CORE Hosting - Error Internal Server Error Handler "aspNetCore" has a bad module "AspNetCoreModule" in its module list

我正在托管 ASP.NET 核心 2 站点并收到以下错误消息。

HTTP Error 500.21 - Internal Server Error
Handler "aspNetCore" has a bad module "AspNetCoreModule" in its module list

我的应用程序正在使用 nopCommerce 4.00 并且服务器端已经安装 ASP.NET 核心组件已安装。

我有同样的错误。处理程序是 AspNetCoreModule,代码是 %SystemRoot%\system32\inetsrv\aspnetcore.dll。使用代码 %ProgramFiles%\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll 将处理程序更改为 AspNetCoreModuleV2 解决了问题。

这个link也很有帮助。如果 link 不起作用:

This error can occur if the AspNetCoreModule is not installed properly in IIS on the computer that is running the Microsoft Dynamics NAV Web Server components. The AspNetCoreModule is installed with the Microsoft .NET Core Windows Server Hosting bundle. You can get this error if this has been not been fully installed or the installation has been damaged in some way.

To resolve this issue, open Programs and Features in Control Panel and check whether Microsoft .NET Core Windows Server Hosting is installed. Then, try one of the following:

  • If it is installed, repair it from Programs and Features, by selecting it, choosing Change, and then choosing Repair.

  • If it is not installed, download and install Microsoft .NET Core - Windows Server Hosting bundle.

following this blog 之后,我遇到了关于如何将 asp.net 核心应用托管到 IIS 中的相同问题。 Visual studio 在已发布的输出文件夹中添加了以下 web.config。

然后我查看了我的 IIS 模块以检查 .NET 核心托管包是否安装正确,我看到了这个,

所以我更改了 web.config,

中的模块
<handlers>
  <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>

之后就没有任何问题了。

我遇到了同样的错误,我通过 settinig stdoutLogEnabled="true"

在 web.config 文件中启用了日志
<aspNetCore processPath=".\site01.exe" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" />

而且我发现我缺少 Microsoft.AspNetCore.App

的正确版本
It was not possible to find any compatible framework version
The framework 'Microsoft.AspNetCore.App', version '2.1.12' was not found.
  - The following frameworks were found:
      3.1.2 at [C:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App]

所以我从 https://dotnet.microsoft.com/download/dotnet-core/2.1/runtime/?utm_source=getdotnetcore&utm_medium=referral[=13 安装了 ASP.NET Core 2.1 Runtime (v2.1.16) - Windows Hosting Bundle Installer =]

我的问题解决了。

这正是我遇到的问题。

我已经发布了一个类似的解决方案 ,它解决了不同的场景。

安装 .NET Core Windows Hosting Bundle 甚至 SDK 后,仍然缺少 AspNetCoreModule 行在 applicationHost.config.

AspNetCoreModuleV2 在那里。

所以,我在另一台服务器上发现了一个 applicationHost.config,它有那些 AspNetCoreModule 行,并在损坏的服务器上更新了文件。不确定为什么它们没有被该特定服务器上的 .NET Core 安装添加。

我在 <globalModules> 部分下添加了以下行:

<add name="AspNetCoreModule" image="%SystemRoot%\system32\inetsrv\aspnetcore.dll" />

<modules>下的这个:

<add name="AspNetCoreModule" />

希望对您有所帮助。

我遇到了同样的错误,我在 web.config 中将“AspNetCoreModule”更改为“AspNetCoreModuleV2”。工作正常