怎么了?
我在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发布。
图像有待进一步理解
发布设置
已部署/已发布的文件
我得到的错误消息
编辑:
我尝试将文件移动到同一域中的/ public_html,因为ISS管理器似乎表明它希望配置文件存在。
然后,如下所示,会出现不同的错误消息。
很难确切地说,但我认为问题是服务器上没有安装ASP.NET Core托管包。在IIS中托管有两个部分。首先,您需要.NET Core运行时,然后您需要IIS的ASP.NET Core托管模块。部署为自包含可以购买运行时,但不能购买IIS中的主机模块。通过发布ASP.NET Core应用程序创建的Web.config中有非标准部分。主机模块在IIS中支持这些配置部分(以及其他内容)。因此,配置错误似乎暗示这不会发生。
如果您不控制服务器,那么您无能为力。老实说,在这一点上,我不会主持任何你至少不能控制环境的地方。您可以通过众多托管服务获得完整的VPS,每月5美元或更少。要么继续在Azure中托管,要么考虑其他受人尊敬的云提供商,如DigitalOcean,AWS等。