20

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

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

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

4

5 回答 5

52

在关注了这篇关于如何将 asp.net 核心应用程序托管到 IIS 中的博客之后,我遇到了同样的问题。Visual Studio 在已发布的输出文件夹中添加了以下 web.config。

在此处输入图像描述

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

在此处输入图像描述

所以我改变了web.config中的模块,

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

之后它没有任何问题。

于 2019-10-02T12:41:10.810 回答
11

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

在此处输入图像描述

在此处输入图像描述

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

如果在运行 Microsoft Dynamics NAV Web 服务器组件的计算机上的 IIS 中未正确安装AspNetCoreModule ,则可能会发生此错误。AspNetCoreModule 与 Microsoft .NET Core Windows Server Hosting 捆绑包一起安装。如果尚未完全安装或安装已以某种方式损坏,您可能会收到此错误。

要解决此问题,请在控制面板中打开程序和功能并检查是否安装了 Microsoft .NET Core Windows Server Hosting。然后,尝试以下操作之一:

  • 如果已安装,请从程序和功能中修复它,方法是选择它,选择更改,然后选择修复。

  • 如果未安装,请下载并安装 Microsoft .NET Core - Windows Server Hosting bundle。

于 2018-12-18T16:04:06.950 回答
5

我遇到了同样的错误,我通过 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安装了ASP.NET Core 2.1 Runtime (v2.1.16) - Windows Hosting Bundle Installer

我的问题解决了。

于 2020-03-23T09:18:05.830 回答
3

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

于 2021-01-16T12:12:31.533 回答
0

这正是我遇到的问题。

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

在安装.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" />

希望这可以帮助。

于 2020-06-16T01:18:38.310 回答