Asp.net core .NET core 3.1应用程序显示;“处理者”;aspNetCore“;“有一个坏模块”;AspNetCoreModuleV2“;在其模块列表中;

Asp.net core .NET core 3.1应用程序显示;“处理者”;aspNetCore“;“有一个坏模块”;AspNetCoreModuleV2“;在其模块列表中;,asp.net-core,.net-core,Asp.net Core,.net Core,我刚刚将一个转换后的(2.2->3.1).NET核心ASP.NET MVC应用程序部署到我的共享主机提供商 我将它从VS2019发布到我的文件系统中的一个私人文件夹,然后通过FTP将其发送到服务器 但当我运行它时,它会说: HTTP Error 500.21 - Internal Server Error Handler "aspNetCore" has a bad module "AspNetCoreModuleV2" in its module list 我可以看到发布向导添加了一个web

我刚刚将一个转换后的(2.2->3.1).NET核心ASP.NET MVC应用程序部署到我的共享主机提供商

我将它从VS2019发布到我的文件系统中的一个私人文件夹,然后通过FTP将其发送到服务器

但当我运行它时,它会说:

HTTP Error 500.21 - Internal Server Error Handler "aspNetCore" has a bad module "AspNetCoreModuleV2" in its module list
我可以看到发布向导添加了一个web.config(尝试删除该文件,但无效),其中包含以下行:

<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />

所以我想这就是
AspNetCoreModuleV2
的来源

尝试删除“2”,尝试使用“自包含”和“依赖框架”部署模式,并尝试使用x64和x86,但均无效

以前的版本是NetCore2.2,它可以正常工作


我不知道
V2
是否与.NET核心V2.x有关

如果底层web服务器是IIS(听起来像是IIS),则应该回收尚未回收的应用程序池。我在从2.2升级到3.1后收到过一次,但在回收后它就消失了。

您必须要求主机提供商安装,其中包括适用于IIS的版本2

ASP.NET Core 3.x应用程序需要此模块版本才能在IIS上运行。使用版本1模块,您只能运行ASP.NET Core 2.x应用程序

该模块的第二个版本实际上是从ASP.NET Core 2.2开始捆绑的,因此我认为您的托管提供商根本没有更新其设置


请注意,该模块与您在服务器上实际运行的内容无关。如果您创建一个自包含的部署,那么该包将包含运行应用程序的所有内容。这样,即使服务器本身没有安装必要的运行时,也可以运行最新的ASP.NET核心版本。因此,您独立于主机安装的运行时。但是,如果您想通过IIS运行它,您仍然需要主机包。

将尝试(如果可以,通过plesk面板)它是IIS(错误消息窗口还显示“IIS核心无法识别模块”),但plesk面板不允许我回收应用程序池。我还尝试了该选项发布时使用“自包含应用程序”。这个包不是包含了它需要的所有文件吗?我确实看到它创建了比我没有创建时多得多的文件t@Michel请参阅我刚才所做的编辑。如果您有“依赖于框架”部署时,则您将依赖宿主提供商安装的.NET Core运行时。通过使用自包含式部署,您将包括所需的所有内容,因此您不必依赖已安装的运行时。但您仍然需要IIS的宿主捆绑包。好的,感谢您的快速回复。将创建支持票证。Hope你是对的,然后会接受这个答案。我不知道IIS也需要更新一个新的.NET core framework。非常遗憾。他们确实安装了托管软件包,但现在他们说Plesk(安装它是为了让我管理服务器的某些部分)不支持.NET core 3(现在)@米歇尔:这真是太遗憾了。不过,据报道,它可能仍然有效,所以也许可以检查一下,仅仅安装捆绑包是否已经足够了。