首页 > 解决方案 > 部署错误:“无法访问请求的页面,因为该页面的相关配置数据无效”

问题描述

发生什么了?

我在 Windows 服务器上向 UnoEuro 发布了一个网站。

当我这样做时,我不断收到错误消息:

“HTTP 错误 500.19 - 内部服务器错误

无法访问请求的页面,因为该页面的相关配置数据无效。”

我设置/尝试了什么?

我所做的是创建了一个 .NET Core 2.1 Web API,它使用 IIS 在我的计算机上本地托管。然后,我将 web api 发布到托管站点 UnoEuro,在那里我可以看到文件已按应有的方式上传。

我询问了托管站点的支持,他们告诉我只要确保它被部署为独立的,否则他们无法提供进一步的帮助。似乎存在某种与它似乎无法找到 webconfig 文件相关的托管问题。至少那是错误消息所说的。

我应该进行任何形式的设置吗?我应该更改的配置?我应该在 Web API 中设置一些我可能错过的 SSL 设置吗?当我开始这个项目时,我告诉它强制执行 HTTPS,但如果那是错误的话,我肯定会收到另一条错误消息吗?

我尝试将目标运行时设置为 x64 和 x86 进行发布。

我以前从未向 Azure 以外的任何地方发布过这样的 API,所以我可能做错了一两件事,但我看不出它应该是什么?我已经用谷歌搜索了,但没有找到任何似乎相关但有效的东西。

大多数解决方案似乎与更改我没有太多控制权的服务器环境有关,我主要只是控制应用程序/Web api,至少在我看来是这样。

希望你有什么建议,我都在耳边。

附带问题:我应该为此使用 IIS 管理器吗?我目前正在通过 Visual Studio 2017 发布。

供进一步理解的图片

发布设置

发布信息

部署/发布的文件

已部署文件

我收到的错误消息

错误信息

编辑:

我尝试将文件移动到与 ISS Manager 相同的域上的 /public_html 似乎表明它期望配置文件在那里。

然后导致了不同的错误消息,如下所示。

错误消息中的链接:https ://go.microsoft.com/fwlink/?LinkID=808681

新的错误信息

标签: asp.net-coredeploymentasp.net-core-webapi

解决方案


很难准确地说,但我认为问题在于服务器上没有安装 ASP.NET Core 托管包。在 IIS 中托管有两个部分。首先,您需要 .NET Core 运行时,然后需要用于 IIS 的 ASP.NET Core 托管模块。部署为独立的为您购买运行时,而不是 IIS 中的托管模块。通过发布 ASP.NET Core 应用程序创建的 Web.config 中有非标准部分。托管模块在 IIS 中支持这些配置部分(除其他外)。因此,配置错误似乎暗示这没有发生。

如果您不控制服务器,那么您无能为力。老实说,在这一点上,我不会托管任何您至少无法控制环境的地方。您可以以每月 5 美元或更少的价格从众多托管服务中获得完整的 VPS。要么继续在 Azure 中托管,要么寻找其他受人尊敬的云提供商,如 DigitalOcean、AWS 等。


推荐阅读