我使用了.net core 2.2模板来构建应用程序。在localhost正常运行时,当我托管IIS时出现此错误。我使用IIS 10托管应用程序。
错误
HTTP错误500.21-内部服务器错误 处理程序“ aspNetCore”的模块列表中有一个错误的模块“ AspNetCoreModuleV2”
答案 0 :(得分:17)
在主机上安装.Net Core 2.2运行时包。
或
将您的项目发布为独立的。
答案 1 :(得分:11)
通过从modules =“ AspNetCoreModuleV2”中删除V2对我有用。请注意,我的问题与从Visual Studio运行.net核心Web API有关。 IE Express失败,代码为500,并且在调查了描述“处理程序'aspNetCore'具有错误的模块..”的错误日志后,通过替换以下内容解决了该问题。
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
答案 2 :(得分:4)
用于Windows托管
安装the hosting bundle。请注意,SDK通常包含运行时,但是,似乎SDK安装程序未在服务器上正确注册运行时。
解决方法(<不推荐使用):在web.config中将Parent *Node `json:"-"`
更改为AspNetCoreModuleV2
。
用于Azure托管
通过选择扩展,然后安装 .NET Core 2.2,安装.NET Core 2.2运行时扩展。运行时。
答案 3 :(得分:4)
我使用Visual Studio 2019(Windows 10)拥有.net core 2.1,webAPI。安装了主机捆绑包(3.1.3)。我尝试使用publish选项部署到文件夹。文件已生成。我按照快速步骤在IIS中创建网站。但是我开始收到HTTP错误500.21。最后从部署文件夹中打开了web.config文件,然后进行了反向操作-将AspNetCoreModule更改为AspNetCoreModuleV2。现在一切都好。感谢所有建议。
答案 4 :(得分:2)
在尝试访问 Windows 服务器上新部署的 Web 应用程序时,我也有同样的担忧。
它抛出了以下错误:
我是这样解决的:
首先,我使用以下链接安装了最新版本的 .Net Core SDK:https://dotnet.microsoft.com/download/dotnet/3.1。在撰写本文时,最新版本是 3.1.14
,使用 Windows x64 安装程序(因为我的 Windows 服务器是 x64),其中包括:
• .NET Core SDK 3.1.408
• .NET Core Runtime 3.1.14
• ASP.NET Core Runtime 3.1.14
• .NET Core Windows Desktop Runtime 3.1.14
接下来,我使用此链接 https://dotnet.microsoft.com/permalink/dotnetcore-current-windows-runtime-bundle-installer 安装了 .NET Core 托管包,该链接是以下项目的安装程序:
• .NET Core Runtime
• ASP.NET Core Module
该包允许 ASP.NET Core 应用与 IIS 一起运行。
这是您可以下载 .Net Core SDK 和 .NET Core 托管包
的网页截图这是下载的 .Net Core SDK 和 .NET Core Hosting bundle 文件的屏幕截图,其中包含 Windows PC 的下载目录中的实际文件名。< /p>
安装 Hosting Bundle 后,可能需要手动重启 IIS。例如,用于运行 IIS 工作进程的 dotnet CLI 工具(命令)可能不存在于 PATH 中。
要手动停止和启动 IIS,请在提升的命令外壳中执行以下命令(以管理员身份运行):
net stop was /y
net start w3svc
这次当我尝试访问网络应用程序时,它工作得很好。
资源:
仅此而已。
我希望这会有所帮助
答案 5 :(得分:1)
有几种方法可以解决此问题:
applicationhost.config
文件。您应该在其适当的位置输入以下内容:<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>
只需确保您的IIS bin目录中确实有aspnetcorev2.dll
的文件即可。
答案 6 :(得分:1)
更新
原始
我通过将以下代码块添加到Web应用程序的.csproj
上来使其工作。
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<LangVersion>latest</LangVersion>
<AspNetCoreModuleName>AspNetCoreModule</AspNetCoreModuleName>
<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
</PropertyGroup>
很显然,您将在继续前进时更新netcoreapp
版本。这就是我能够使事情正常进行的方式。我不知道为什么仅仅为2.2安装主机捆绑包还不够。
答案 7 :(得分:0)
我刚刚有这个问题。我用它替换了web.config中的代码部分。
旧部分:
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2"
resourceType="Unspecified" />
</handlers>
新部分:
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule"
resourceType="Unspecified" />
</handlers>
答案 8 :(得分:0)
这对我有用:
<add name="AspNetCoreModuleV2" image="%ProgramFiles%\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll" />
答案 9 :(得分:0)
我遇到了同样的问题,对我有用的是修复主机捆绑包的安装(控制面板->程序和功能;右键单击主机捆绑包安装,然后单击“卸载”,然后选择“修复”在以下弹出的窗口之一中。
答案 10 :(得分:0)
托管时出现此问题的最佳解决方案是在project.csproj文件的发行版本中覆盖此值。 注意在新版本的Visual Studio调试器中使用旧版模块时,请注意。 所以最好的解决办法就是这个。
<TargetFramework>netcoreapp3.1</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
<AspNetCoreModuleName Condition="'$(Configuration)' == 'Release'">AspNetCoreModule</AspNetCoreModuleName>
答案 11 :(得分:0)
ASP.NET Core 2.2或更高版本:对于使用进程内托管模型的64位(x64)独立式部署,请为32位(x86)进程禁用应用程序池。
在“ IIS管理器”>“应用程序池”的“动作”侧栏中,选择“设置应用程序池默认值”或“高级设置”。找到“启用32位应用程序”并将其值设置为False。
答案 12 :(得分:0)
我发布我的答案是为了节省其他人停留在同一问题上的时间,该问题花费了大约1个小时。我的问题是我安装了不正确的托管程序。如果您的应用程序使用.Net Core 3.1,则必须不使用链接“ x64”而是通过下一页上的链接“ Hosting bundle”下载它: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/
答案 13 :(得分:0)
在尝试访问 Windows 10 上新部署的 Web 应用程序时,我也有同样的担忧。
它抛出了以下错误:
HTTP 错误 500.21 - 内部服务器错误 处理程序“aspNetCore”在其模块列表中有一个坏模块“AspNetCoreModuleV2”
我是这样解决的:
我使用此链接 https://dotnet.microsoft.com/permalink/dotnetcore-current-windows-runtime-bundle-installer 安装了 .NET Core Hosting 包,该链接是以下项目的安装程序:
• .NET Core 运行时 • ASP.NET 核心模块
该包允许 ASP.NET Core 应用与 IIS 一起运行。
答案 14 :(得分:-2)
RavinderReddy Seelam(以上答案)是正确的,一旦交付了.Net Core 2.2捆绑运行时并将“应用程序池”类型更改为“无托管代码”,就可以使用。