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

Doh*_*h09 3 deployment asp.net-core asp.net-core-webapi

发生什么了?

我在 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

新的错误信息

Chr*_*att 5

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

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

  • 在 IIS 服务器上安装 .NET Core 托管安装程序包解决了我遇到的问题(与原始海报完全相同的错误消息)。这是针对 ASP.NET Core 5 Web API 的,甚至尝试将其作为独立包运行。谢谢! (2认同)