【问题标题】:ASP.NET CORE Hosting - Error Internal Server Error Handler "aspNetCore" has a bad module "AspNetCoreModule" in its module listASP.NET CORE 托管 - 错误内部服务器错误处理程序“aspNetCore”的模块列表中有一个错误模块“AspNetCoreModule”
【发布时间】:2018-07-14 08:41:01
【问题描述】:

我正在托管 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 组件。

【问题讨论】:

  • 您想在哪里托管?共享?虚拟主机?这是 nopCommerce 应用程序特有的还是简单的核心应用程序特有的?

标签: asp.net-core hosting nopcommerce internal-server-error nopcommerce-4.0


【解决方案1】:

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>

在那之后它没有任何问题。

【讨论】:

  • 这对我有用,但每次我从 Visual Studio 发布解决方案时,它都会再次将 web.config 设置回 modules="AspNetCoreModule"。由于这只是一个测试项目,我更新到了最新版本的 Visual Studio 和 .Net core,删除了整个项目并重新开始,然后它就可以工作了。
  • 这对我有用,非常感谢! @Andy,我认为由于我的解决方案远远不够,我将不得不每次手动更新 web.config :/ 没什么大不了的,但肯定很乏味。嘿,现在我知道我的下一个 .NET Core 项目了!
  • 如果您不想每次都手动更改 web.config,安装旧版本的 IIS 托管包也会安装“AspNetCoreModule”,它可以与 V2 并排安装.我安装了为我完成的 .Net Core 2.2 IIS 托管包。
【解决方案2】:

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

这个link 也很有帮助。如果链接失效:

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

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

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

  • 如果未安装,请下载并安装 Microsoft .NET Core - Windows 服务器托管包。

【讨论】:

  • 感谢您的解决方案。在我的情况下,模块的 AspNetCoreModuleV2 键具有正确的值,但 Handler Mapping 中的 aspNetCore 没有正确的值。
【解决方案3】:

我遇到了同样的错误,我通过设置启用了 web.config 文件中的日志 stdoutLogEnabled="true"

<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

我的问题已经解决了。

【讨论】:

  • 这个解决方案让我不必在每次从 VS 重新发布时都更改我的 web.config,这是另一条评论中提到的问题。
  • 优秀的解决方案,非常感谢,它对我有用。
【解决方案4】:

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

【讨论】:

    【解决方案5】:

    这正是我遇到的问题。

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

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

    AspNetCoreModuleV2 在那里。

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

    我在&lt;globalModules&gt; 部分下添加了以下行:

    &lt;add name="AspNetCoreModule" image="%SystemRoot%\system32\inetsrv\aspnetcore.dll" /&gt;

    还有&lt;modules&gt;下面的这个:

    &lt;add name="AspNetCoreModule" /&gt;

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2019-05-19
      • 1970-01-01
      • 1970-01-01
      • 2020-04-13
      • 1970-01-01
      • 2013-07-02
      • 1970-01-01
      • 2018-02-22
      • 1970-01-01
      相关资源
      最近更新 更多