asp.net-core - 部署错误:“无法访问请求的页面,因为该页面的相关配置数据无效”
问题描述
发生什么了?
我在 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 似乎表明它期望配置文件在那里。
然后导致了不同的错误消息,如下所示。
解决方案
很难准确地说,但我认为问题在于服务器上没有安装 ASP.NET Core 托管包。在 IIS 中托管有两个部分。首先,您需要 .NET Core 运行时,然后需要用于 IIS 的 ASP.NET Core 托管模块。部署为独立的为您购买运行时,而不是 IIS 中的托管模块。通过发布 ASP.NET Core 应用程序创建的 Web.config 中有非标准部分。托管模块在 IIS 中支持这些配置部分(除其他外)。因此,配置错误似乎暗示这没有发生。
如果您不控制服务器,那么您无能为力。老实说,在这一点上,我不会托管任何您至少无法控制环境的地方。您可以以每月 5 美元或更少的价格从众多托管服务中获得完整的 VPS。要么继续在 Azure 中托管,要么寻找其他受人尊敬的云提供商,如 DigitalOcean、AWS 等。
推荐阅读
- java - Maven 在运行时不运行 @BeforeEach 方法
- python - 根据存储在不同数据框中的行和列标签从 pandas 数据框中选择值
- javascript - 不构建单页应用程序时,如何构建 Vue.js 单文件组件并导入它们?
- c# - 使用实体框架应用程序用户创建具有来自特定角色的用户的视图
- php - 在 CloudSearch 上查找带有 AWS SDK for PHP 前缀的短语
- javascript - 在 v-for attr 中具有增量值
- git - 使用 Github API 在 GitHub 上查询组织内的存储库
- visual-studio - 从 Visual Studio Mac 在 android 上进行 Wifi 调试
- angularjs - 角度错误:转换在 $StateProvider.$get 处被取代
- python - PyQt 退出代码 139 堆叠小部件