我正在托管 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 组件。
我正在托管 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 组件。
在关注了这篇关于如何将 asp.net 核心应用程序托管到 IIS 中的博客之后,我遇到了同样的问题。Visual Studio 在已发布的输出文件夹中添加了以下 web.config。
然后我查看了我的 IIS 模块以检查 .NET 核心托管包是否安装正确,我看到了这个,
所以我改变了web.config中的模块,
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
之后它没有任何问题。
我有同样的错误。处理程序是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。
我遇到了同样的错误,我通过 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
我的问题解决了。
我遇到了同样的错误,我在 web.config 中将“AspNetCoreModule”更改为“AspNetCoreModuleV2”。工作正常
这正是我遇到的问题。
我在这里发布了一个类似的解决方案,它解决了不同的场景。
在安装.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" />
希望这可以帮助。