2

我正在尝试在interserver.com 共享托管平台上托管 ASP.NET 2.2 网站。他们使用 Plesk Onyx 版本 17.8.11 作为其托管平台控制面板。

我已验证主机已正确路由和设置,但仍然出现运行时错误:

HTTP 错误 500.0 - ANCM 进程内处理程序加载失败

  • 未找到 Microsoft.NetCore.App 或 Microsoft.AspNetCore.App 的指定版本
  • 应用程序中未引用进程中请求处理程序 Microsoft.AspNetCore.Server.IIS
  • ANCM 找不到 dotnet。

HTTP 错误 500.0 - ANCM 进程内处理程序加载失败 我向客户服务报告了这个问题,他们给我发了几篇文章来尝试,但没有找到解决方案。由于错误说找不到关键的 aspnet 核心库,他们说他们已经“安装了 .NET core 2.1.10 和 2.2.2 托管包”,但我仍然遇到同样的错误。

主机上的 web.config(自动生成)是:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="dotnet" arguments=".\BridgeSite.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="InProcess" />
    </system.webServer>
  </location>
</configuration>
<!--ProjectGuid: 7bcb9c33-cd6b-4078-9742-869d5dd7bxxx -->

任何建议stackoverflow家庭?

4

4 回答 4

3

由于这是一个共享托管平台,我无权摆弄服务器配置。据我所知,ASP.NET Core 2.2.4 运行时安装出现问题并且 AspNetCoreModuleV2.dll 丢失/损坏/错位?

在花了很多时间之后,我发现了一些解决方法:

  1. 每次发布时,转到发布代码的主机上的文件夹,打开自动生成的 web.config,在处理程序节点下将“AspNetCoreModuleV2”替换为“AspNetCoreModule”。这可以通过将其默认返回到以前的包来实现,但是很糟糕,因为每次发布代码时都必须手动完成。

或者,

  1. 在 Visual Studio 解决方案中,在 Properties > PublishProfiles 下打开(或创建新的)发布配置文件。在 PropertyGroup 添加:<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>。这可行,但这是一个很大的技巧,应用程序不会获得 InProcess 的所有性能提升(默认)

经过测试,我发现您可以使用其中一个,您不必同时使用两个。

我希望随着托管服务继续更新其运行时,这个问题会随着时间的推移自行解决,但现在希望这些变通办法也能帮助你。

于 2019-04-17T21:46:25.643 回答
1

记录了此错误以及解决方案:

500.0 进程内处理程序加载失败

工作进程失败。应用程序无法启动。

ASP.NET Core 模块找不到 .NET Core CLR 并找不到进程内请求处理程序 ( aspnetcorev2_inprocess.dll )。检查:

最可能的情况是您根本没有安装 .NET Core 运行时,或者至少没有安装正确的版本以匹配您的项目的目标。

于 2019-04-17T16:00:33.013 回答
0

对于 Asp.Net Core 2.2 MVC。1. 在项目的根目录下创建 web.config。2.过去这个配置:

  <?xml version="1.0" encoding="utf-8"?>
  <configuration>
    <location path="." inheritInChildApplications="false">
      <system.webServer>
        <handlers>
          <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
        </handlers>
        <aspNetCore processPath="dotnet"
                    arguments=".\MyApp.dll"
                    stdoutLogEnabled="false"
                    stdoutLogFile=".\logs\stdout"
                    hostingModel="InProcess" />
      </system.webServer>
    </location>
  </configuration>
于 2019-08-25T11:58:52.647 回答
0

我对 Interserver.com 也有同样的问题。

支持通过将我的应用程序池切换到 64 位来解决问题。从我读到的关于其他 Plesk 托管服务提供商的信息来看,默认情况下,创建虚拟机的脚本会默认创建 32 位应用程序池。我猜 AspNetCoreModuleV2 需要 64 位,但这只是一个猜测。很高兴我的网站现在正在运行。

于 2019-10-26T15:57:34.053 回答