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

5
据我所知,当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重写,但这并没有解决问题。我很焦虑,尝试了几乎所有的方法,有什么解决办法吗?
错误页面如下:

enter image description here


1
“Internal Server Error” always 意味着:“服务器发生了某些问题,您必须查看服务器上的日志文件以查找错误详细信息”。始终如此。 - Uwe Keim
1
请发布完整的错误页面(如有需要,请使用屏幕截图)。 - Lex Li
1
请确保将iis_iusrs和iusr权限分配给站点文件夹,以便可以访问Web.config文件。 - Jalpa Panchal
@LexLi 这是完整的图片:https://ibb.co/Ld8SZBy - Panayiotis Paddy Paschalides
@UweKeim 不知道如何访问日志。 - Panayiotis Paddy Paschalides
显示剩余6条评论
4个回答

7

我曾经也遇到同样的问题,花了4天时间试图解决它。然后我找到了解决方案。

首先你需要下载.NET托管

https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/hosting-bundle?view=aspnetcore-7.0#direct-download-current-version

安装完成后,请尝试使用cmd(以管理员身份运行,然后编写iisreset)重新启动IIS。

如果错误页面已更改,则我们正在朝着正确的方向前进 :)

现在应该会显示您正在使用错误的模块(这确实是真的)。

打开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和AspNetCoreModuleV2][1] [1]: https://istack.dev59.com/jC0JC.webp


2
请点击以下链接下载最新版本(目前为6.0.7)的.NET Core托管捆绑包:https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/hosting-bundle?view=aspnetcore-7.0#direct-download-current-version - J Pollack
请更新链接到更通用的 https://dotnet.microsoft.com/en-us/download/dotnet,而不是旧的2.2版本。 - Ekus


0
通过在生成的 web.config 文件中将 "AspNetCoreModuleV2" 更改为 "AspNetCoreModule",解决了这个问题,即:从
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />

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

-1

这让我困惑了一段时间,因为在本地主机上一切都正常工作 - 错误发生在生产服务器上。

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

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

吸取教训!希望能帮助其他人避免陷入500.19的困境。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接