的模块“aspnetcorev2.dll”加载失败

问题描述 投票:4回答:2

最近我尝试安装ASP.NET核心/ .NET核心:运行和托管捆绑版本2.2在运行Windows Server 2008 R2 SP1的计算机上。然而,在安装IIS后停止工作,并给出了它承载的所有应用程序503 Service unavailable错误。检查应用程序池后,我看到水池只是关闭。

在事件查看器,我可以看到下面的错误消息 -

模块DLL C:\程序文件(x86)\ IIS \ Asp.Net核心模块\ V2 \ aspnetcorev2.dll未能加载。数据是错误的。

我曾尝试池设置为两个32/64位,但错误是一样的。别的任何人面对这个问题,或者有这个解决方案?

.net iis .net-core iis-7 iis-7.5
2个回答
8
投票

通过下列文件看完后 -

Troubleshoot ASP.NET Core on IIS

Common errors reference for Azure App Service and IIS with ASP.NET Core

我才知道,ASP.NET核心/ .NET核心:运行和托管捆绑(最新版本)依赖于微软的Visual C ++ 2015年可再发行。有问题的机器已经安装的Redist ++早期版本的VC。安装可再发行的所说的版本后(32和64位),一切都开始工作了。

有趣的是ASP.NET的核心/ .NET核心:运行和托管捆绑2.2版安装程序在安装有关缺少VC ++ 2015年REDIST期间没有抛出任何错误或警告。


0
投票

这aspnetcorev2.dll实际上是ASP.NET 2.0的核心模块,通常称为ANCM。该模块需要进行一些设置,如果ASP.NET核2.0 / 2.1 / 2.2将被IIS上运行,才去ASP.NET核心原隼引擎使用IIS作为主要的代理配置,并且它也叫出来-of过程模型。

这一点很重要,Windows以外的其他平台上,所有的请求,直接转到红隼和红隼直接服务。因此在IIS上,一个特殊的配置设置需要进行使用红隼在IIS上。

有关在IIS ANCM的更多信息,请参阅此微软官方文档:https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/aspnet-core-module?view=aspnetcore-2.2

注:虽然该页面是.NET 2.2的核心,它仍然适用于.NET 2.0 / 2.1。

根据你的错误,有一个机会,ANCM DLL是不是导致您的应用程序的DLL的范围之内。确保ANCM DLL文件的编译后的文件夹中,而不是外界。此外,还要确保您使用的是RTM或.NET核2.0 / 2.1 / 2.2运行时,而不是每日构建的官方发布版本,因为使用.NET核心的每日构建2.0 / 2.1 / 2.2可能会带来一些奇怪的错误,因为他们的全分布运行时的DLL可能不完全一致。

有关在ASP.NET核心2.x的故障排除ANCM的更多信息,请参阅本官方MS文档:https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/troubleshoot?view=aspnetcore-2.2

更新#1:

基于下面的评论,我添加此额外的信息:你应该清楚你的机器上所有的Nu​​Get高速缓存,恢复并再次运行MSBUILD。如果你使用.NET 2.1核心的平台,为您的ASP.NET 2.1的核心应用程序,然后如果你安装.NET 2.2的核心,而无需更新到V2.2您的应用程序的引用,有一个机会,引用仍然混在一起。

还是为了更好的做法,使用global.json文件严格的您的应用程序的编译总是使用.NET 2.1的核心SDK与特定的版本,无论是什么.NET核心SDK的最新版本,你有你的机器上。这也是很重要的,因为在默认情况下编译.NET核心应用将始终尝试使用最新的SDK你的机器上,和以前的现有旧版本将被忽略。

设置global.json记录在这里:https://docs.microsoft.com/en-us/dotnet/core/tools/global-json

© www.soinside.com 2019 - 2024. All rights reserved.