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
然后在安装后尝试用 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 重写模块
通过在我的发布文件夹中生成的 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 兔子洞中拯救其他 运行。
据我了解,当 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
然后在安装后尝试用 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 重写模块
通过在我的发布文件夹中生成的 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 兔子洞中拯救其他 运行。