Blazor 托管 (ASP.NET) HTTP 错误 500.19 - 内部服务器错误

Blazor Hosted (ASP.NET) HTTP Error 500.19 - Internal Server Error

据我了解,当 web.config 配置不正确时会发生此错误。但是,当我发布应用程序时,会生成以下 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=".\Lotus.Server.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
    </system.webServer>
  </location>
</configuration>
<!--ProjectGuid: 85a43eb6-3576-401d-b025-a15a2cc377b6-->

我首先想到安装URLRewrite,这个并没有解决问题。我压力很大,几乎尝试了所有方法,有什么解决办法吗?

错误页面如下所示:

我遇到了同样的问题,我尝试了 4 天来修复它。然后我找到了解决方案。

首先需要下载dotnet hosting 2.2.2

https://dotnet.microsoft.com/download/dotnet-core/thank-you/runtime-aspnetcore-2.2.2-windows-hosting-bundle-installer

然后在安装后尝试用 cmd 重新启动 IIS(运行 以管理员身份,然后写入 iisreset)。 如果错误页面已更改,我们将朝着好的方向前进:)

现在应该说你使用了错误的模块(确实如此)。

打开 IIS,访问您的网站并检查已安装的模块。在列表中,您应该能够看到 AspNetCoreModule 但看不到 AspNetCoreModuleV2。

转到: %ProgramFiles%\IIS\Asp.Net Core Module\V2\ 和 复制 aspnetcorev2.dll

然后进入%SystemRoot%\system32\inetsrv\然后粘贴

现在,打开 %SystemRoot%\system32\inetsrv\ 中的配置文件夹,然后打开 applicationHost。

重要 在这个阶段你需要关闭你的iis

现在找到这一行:

<add name="AspNetCoreModule" image="%SystemRoot%\system32\inetsrv\aspnetcore.dll" />

并在其下添加:

<add name="AspNetCoreModuleV2" image="%SystemRoot%\system32\inetsrv\aspnetcorev2.dll" />

这个也一样:

<add name="AspNetCoreModule" />

在其下添加:

<add name="AspNetCoreModuleV2" />

现在保存它,覆盖旧的,并启用IIS。转到您的网站,检查模块,在列表中您应该能够看到 AspNetCoreModuleV2:

AspNetCoreModule and AspNetCoreModuleV2 on list

对我来说它缺少 Url 重写模块

https://www.freecodecamp.org/news/how-to-deploy-a-blazor-application-on-internet-information-services-iis-f96f2969fdcb/

通过在我的发布文件夹中生成的 web.config 中将“AspNetCoreModuleV2”更改为“AspNetCoreModule”解决了这个问题,即来自

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

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

这让我摸不着头脑,因为在 LocalHost 上一切正常 - 错误发生在生产服务器上。

重建站点后,我发现我删除了生产服务器上的站点文件夹及其内容。

当我更换站点时,我已将其发布到我的服务器节点而没有重新创建站点文件夹,因此显然服务器无法访问我的 web.config 文件,因为它无法找到站点文件夹。

吸取教训!希望它能在 500.19 兔子洞中拯救其他 运行。