C# IIS:处理程序“;aspNetCore“;“有一个坏模块”;AspNetCoreModuleV2“;在其模块列表中
我使用angular.NETCore2.2模板构建了一个应用程序。在localhost工作正常的情况下,当我将主机托管到IIS时,会出现此错误。我正在使用IIS 10来托管应用程序C# IIS:处理程序“;aspNetCore“;“有一个坏模块”;AspNetCoreModuleV2“;在其模块列表中,c#,asp.net-mvc,iis,.net-core,C#,Asp.net Mvc,Iis,.net Core,我使用angular.NETCore2.2模板构建了一个应用程序。在localhost工作正常的情况下,当我将主机托管到IIS时,会出现此错误。我正在使用IIS 10来托管应用程序 <PropertyGroup> <TargetFramework>netcoreapp2.2</TargetFramework> <LangVersion>latest</LangVersion> <AspNetCoreModuleName
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<LangVersion>latest</LangVersion>
<AspNetCoreModuleName>AspNetCoreModule</AspNetCoreModuleName>
<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
</PropertyGroup>
错误
HTTP错误500.21-内部服务器错误
处理程序“aspNetCore”的模块列表中有一个坏模块“AspNetCoreModuleV2”在主机上安装.Net Core 2.2运行时捆绑包 或
将您的项目发布为独立的。从modules=“AspNetCoreModuleV2”中删除V2对我来说很有效。请注意,我的问题与从VisualStudio运行.net核心web api有关。IE Express失败,代码为500,在调查描述“处理程序'aspNetCore'有一个坏模块..”的错误日志后,通过替换为以下内容解决了此问题
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
Windows IIS 解决方案:安装 原因:尽管SDK通常包含运行时,但SDK安装程序似乎没有在服务器上正确注册运行时 解决方法(不推荐): 将web.config内的
AspNetCoreModuleV2
更改为AspNetCoreModule
Azure平台托管
通过选择扩展,然后安装.NET Core运行时来安装.NET Core运行时扩展。有几种方法可以解决此问题:
applicationhost.config
文件。您应在其相应位置设置以下条目:
...
...
...
...
只需确保您的IIS bin目录中确实有aspnetcorev2.dll
文件。更新
这是一个让你的应用保持在v2之前托管状态的解决方案。有关更完整的解决方案,请参见alans的回答和我的评论
原创的
我通过向web应用程序的.csproj
中添加以下代码块来实现这一点
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<LangVersion>latest</LangVersion>
<AspNetCoreModuleName>AspNetCoreModule</AspNetCoreModuleName>
<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
</PropertyGroup>
netcoreapp2.2
最新的
AspNetCore模块
进程外
显然,您需要在继续操作时更新
netcoreapp
版本。这就是我如何使事情运转起来的。我不知道为什么仅仅为2.2安装主机包是不够的。我刚才遇到了这个问题。我用这个替换了web.config中的代码部分
旧零件:
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2"
resourceType="Unspecified" />
</handlers>
新部分:
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule"
resourceType="Unspecified" />
</handlers>
以下是对我有效的方法:
我也遇到了同样的问题,对我有效的方法是修复托管包的安装(控制面板->程序和功能;右键单击主机包安装并单击“卸载”,然后在弹出的下列窗口之一中选择“修复”。当主机出现此问题时,最好的解决方案是在project.csproj文件中为发布版本覆盖此值。
请注意,在新版本的VisualStudio调试器中使用旧版本的模块时无法工作。
所以最好的解决办法就是这样
<TargetFramework>netcoreapp3.1</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
<AspNetCoreModuleName Condition="'$(Configuration)' == 'Release'">AspNetCoreModule</AspNetCoreModuleName>
netcoreapp3.1
过程中
AspNetCore模块
我使用Visual Studio 2019(Windows 10)安装了.net core 2.1和webAPI。安装了托管包(3.1.3)。我尝试使用发布选项部署到文件夹。文件已生成。我按照快速步骤在IIS中创建网站。但是,我开始收到HTTP错误500.21。最后从部署文件夹打开了web.config文件,并进行了反向操作-将AspNetCoreModule更改为AspNetCoreModuleV2。现在一切正常。感谢所有建议。
ASP.NET Core 2.2或更高版本:对于使用进程内托管模型的64位(x64)自包含部署,请禁用32位(x86)进程的应用程序池 在IIS管理器>应用程序池的操作侧栏中,选择设置应用程序池默认值或高级设置。找到启用32位应用程序并将该值设置为False
我发布我的答案是为了节省其他人的时间,因为他们遇到了同样的问题,花了大约1个小时。我的问题是我安装了一个不正确的托管budle。如果你的应用程序使用.Net Core 3.1,你必须下载它,而不是使用链接“x64”,而是使用下一页上的链接“托管包”: 我的问题是,我认为x64托管捆绑包位于链接“x64”中,但它不在链接中。“x64”链接不包含托管捆绑包,无法解决问题。 应仅使用链接“托管捆绑包””下载托管捆绑包:
下面的文章对我理解这个问题非常有帮助:我在尝试访问Windows服务器上新部署的web应用程序时也遇到了同样的问题 它抛出了以下错误: 以下是我解决问题的方法: 首先,我使用以下链接安装了.Net Core SDK的最新版本:。在撰写本文时,最新版本是
3.1.14
,使用Windows x64安装程序(因为我的Windows server是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
接下来,我使用以下链接安装了.NET Core托管捆绑包:
• .NET Core Runtime
• ASP.NET Core Module
该捆绑包允许ASP.NET核心应用程序与IIS一起运行
这是一个网页截图,您可以从中下载.Net Core SDK和.Net Core托管包
下面是下载的.Net Core SDK和.Net Core托管捆绑包文件的屏幕截图,以及它们在Windows PC下载目录中的实际文件名
net stop was /y
net start w3svc