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

时间:2020-02-13 22:00:12

标签: asp.net iis web-config blazor

据我了解,如果未正确配置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-->

我首先想到安装URL Rewrite,但这并不能解决问题。我要强调的是,几乎所有的解决方案都尝试过任何想法?

错误页面如下所示:

enter image description here

4 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

我遇到了同样的问题,并且试图修复4天。然后我找到了解决方案。

首先,您需要下载dotnet托管2.2.2

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

然后在安装后尝试使用cmd 重新启动IIS (以admin身份运行,然后编写iisreset)。 如果错误页面已更改,我们将朝着正确的方向发展:)

现在应该说您正在使用错误的模块(的确如此)。

打开IIS ,进入您的网站并检查已安装的模块。在列表中,您应该可以看到AspNetCoreModule,但看不到AspNetCoreModuleV2。

转到: %ProgramFiles%\ IIS \ Asp.Net核心模块\ 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

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:0)

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

重建站点后,我意识到我已经删除了生产服务器上的站点文件夹及其内容。

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

吸取教训!希望它可以拯救其他人跑到 500.19 兔子洞。