处理程序"aspNetCore"在其模块列表中有一个错误的模块"AspNetCoreModuleV2"

Aru*_*mar 40 c# iis asp.net-mvc .net-core

我使用angular .net core 2.2模板来构建应用程序.在localhost工作正常,当我主机IIS我得到这个错误.我使用IIS 10来托管应用程序.

错误,

HTTP错误500.21 - 内部服务器错误处理程序"aspNetCore"在其模块列表中有一个错误的模块"AspNetCoreModuleV2"

小智 25

在主机上安装.Net Core 2.2运行时捆绑包.

要么

将项目发布为自包含.

  • 安装SDK是不够的.您必须选择运行时的"托管包"版本.即使没有IISReset,这对我有用. (8认同)
  • 我已经安装了 2.2 托管包,但仍然有这个问题 (3认同)
  • 自包含的发布仍需要安装AspNetCoreModuleV2 (2认同)

小智 19

通过从模块=“ AspNetCoreModuleV2”中删除V2为我工作。请注意,我的问题与从Visual Studio运行.net核心Web API有关。IE Express失败,代码为500,并且在调查了描述“处理程序'aspNetCore'具有错误的模块..”的错误日志后,通过替换以下内容来解决该问题。

<handlers>
  <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
Run Code Online (Sandbox Code Playgroud)

  • 在这种情况下,从V2降级会有什么后果? (2认同)

Sha*_*uti 16

对于Windows托管

安装主机捆绑包。请注意,SDK通常包含运行时,但是,似乎SDK安装程序未在服务器上正确注册运行时。

解决方法(不建议):在web.config中更改AspNetCoreModuleV2AspNetCoreModule

对于Azure托管

通过选择扩展,然后安装.NET Core 2.2,安装.NET Core 2.2运行时扩展运行时

  • 这对我有用,非常感谢! (2认同)
  • 安装托管捆绑包不起作用。我使用了解决方法,然后在发布时我必须将“V2”添加到 AspNetCoreModule。我使用的是 VS 2017 附带的 IIS Express。 (2认同)
  • 对我来说,我已经从这里安装了 dotnet-hosting-5.0.0-win.exe https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/ 并且无法启动Windwos 10 上的 IIS10 中的默认 mvc 站点。但是我在此答案的链接中安装了托管捆绑包(显然是 dotnet-hosting-2.2.1-win.exe)并且该站点运行,tickety-boo。 (2认同)

Ana*_*nyi 14

我发布我的答案是为了节省其他遇到同样问题的人的时间,大约需要 1 小时。我的问题是我安装了不正确的托管包。如果您的应用程序使用 .Net Core 3.1,则必须不使用链接“x64”下载它,而是使用下一页上的链接“托管包”下载: https: //dotnet.microsoft.com/download/dotnet-core /3.1

我的问题是,我认为 x64 托管捆绑包位于链接“ x64 ”中,但事实并非如此。“ x64 ”链接不包含托管捆绑包,并且无法解决问题。应仅使用链接“ Hosting Bundle ”下载托管包:

在此输入图像描述

以下文章对我理解这个问题非常有帮助:https://dotnetcoretutorials.com/2019/12/23/hosting-an-asp-net-core-web-application-in-iis/


Pro*_*ton 8

当我尝试访问 Windows 服务器上新部署的 Web 应用程序时,我也有同样的担忧。

\n

它抛出以下错误:

\n

在此输入图像描述

\n

这是我解决问题的方法

\n

首先,我使用以下链接安装了最新版本的.Net Core SDK :https: //dotnet.microsoft.com/download/dotnet/3.1。截至撰写本文时,最新版本正在3.1.14使用Windows x64安装程序(因为我的Windows 服务器是 x64),其中包括:

\n
\xe2\x80\xa2 .NET Core SDK 3.1.408\n\xe2\x80\xa2 .NET Core Runtime 3.1.14\n\xe2\x80\xa2 ASP.NET Core Runtime 3.1.14\n\xe2\x80\xa2 .NET Core Windows Desktop Runtime 3.1.14\n
Run Code Online (Sandbox Code Playgroud)\n

接下来,我使用此链接安装了.NET Core 托管捆绑包https://dotnet.microsoft.com/permalink/dotnetcore-current-windows-runtime-bundle-installer,它是以下安装程序:

\n
\xe2\x80\xa2 .NET Core Runtime\n\xe2\x80\xa2 ASP.NET Core Module\n
Run Code Online (Sandbox Code Playgroud)\n

该捆绑包允许 ASP.NET Core 应用程序与 IIS 一起运行。

\n

这是网页的屏幕截图,您可以在其中下载.Net Core SDK.NET Core 托管捆绑包

\n

这是网页的屏幕截图,您可以在其中下载 .Net Core SDK 和 .NET Core 托管捆绑包

\n

这是下载的 .Net Core SDK.NET Core 托管捆绑包的屏幕截图文件的屏幕截图,其实际文件名位于 Windows PC 的下载目录中。

\n

这是下载的 .Net Core SDK 和 .NET Core Hosting 捆绑包文件的屏幕截图,其实际文件名位于 Windows PC 的下载目录中

\n

安装 Hosting Bundle 后,可能需要手动重新启动 IIS。例如,dotnet CLI用于运行 IIS 工作进程的 PATH 上可能不存在

\n

要手动停止和启动 IIS,请在提升的命令 shell 中执行以下命令(以管理员身份运行):

\n
net stop was /y\nnet start w3svc\n
Run Code Online (Sandbox Code Playgroud)\n

这次当我尝试访问网络应用程序时,它运行得很好。

\n

资源

\n

.NET Core 托管捆绑包

\n

就这样。

\n

我希望这有帮助

\n


ala*_*ans 7

有几种方法可以解决这个问题:

  1. 安装最新的 .NET Core 运行时
  2. 检查applicationhost.config您的 IIS 使用的文件。您应该在其适当的位置有以下条目:
<configuration>
    <system.webServer>
        ...
        <globalModules>
            ...
            <add name="AspNetCoreModuleV2" image="%IIS_BIN%\Asp.Net Core Module\V2\aspnetcorev2.dll" />
        </globalModules>
    </system.webServer>
    ...
    <location path="" overrideMode="Allow">
        <system.webServer>
            <modules>
                ...
                <add name="AspNetCoreModuleV2" lockItem="true" />
            </modules>
        </system.webServer>
    </location>
</configuration>
Run Code Online (Sandbox Code Playgroud)

只需确保您aspnetcorev2.dll的 IIS bin 目录中确实有该文件。


Bin*_*ick 6

更新

这是一种解决方法,可让您的应用保持在v2之前的主机上。请参阅alans答案和我的评论以获取更完整的解决方案

原版的

我通过将以下代码块添加到.csprojWeb应用程序中来使其工作。

<PropertyGroup>
  <TargetFramework>netcoreapp2.2</TargetFramework>
  <LangVersion>latest</LangVersion>
  <AspNetCoreModuleName>AspNetCoreModule</AspNetCoreModuleName>
  <AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

显然,您将在继续进行时更新netcoreapp版本。这就是我能够使事情正常进行的方式。我不知道为什么仅仅为2.2安装主机捆绑包还不够。


小智 5

我有 .net core 2.1,使用 Visual Studio 2019 (Windows 10) 的 webAPI。安装托管捆绑包 (3.1.3)。我尝试使用发布选项部署到文件夹。文件已生成。我按照快速步骤在 IIS 中创建网站。但是我开始收到 HTTP 错误 500.21。最后从部署文件夹中打开 web.config 文件并执行相反的操作 - 将 AspNetCoreModule 更改为 AspNetCoreModuleV2。现在一切都好了。感谢您的所有建议。