会发生什么?
我在Windows服务器上将网站发布到UnoEuro。
当我继续收到错误消息时:
“ HTTP错误500.19-内部服务器错误
无法访问请求的页面,因为该页面的相关配置数据无效。”
我已经设置/尝试了什么?
我所做的是,我创建了一个.NET Core 2.1 Web API,该API使用IIS在我的计算机上本地托管良好。然后,我已将Web api发布到托管站点UnoEuro,在那里我可以看到文件已按原样上传。
我请求托管站点的支持,他们告诉我只是确保将其部署为独立的,否则他们将无能为力。似乎存在某种与主机相关的问题,似乎无法找到webconfig文件。至少这就是错误消息所说的。
我应该进行任何形式的设置吗?我应该更改配置吗?是否应该在Web API中设置一些我可能会错过的SSL设置?当我启动该项目时,我告诉它强制执行HTTPS,但是如果那是错误的话,我当然会收到另一条错误消息吗?
我尝试将目标运行时设置为x64和x86进行发布。
除Azure以外,我从未将这样的API发布到任何其他应用程序,所以我可能做错了一两件事,但我看不出它应该是什么?我已经在Google周围搜索了,但没有发现任何有用的东西。
大多数解决方案似乎都与更改服务器环境有关,而我没有太多控制权,我基本上只是对应用程序/ Web api拥有控制权,至少对我来说就是这样。
希望您有任何建议,我全都是耳朵。
侧面问题:我应该为此使用IIS管理器吗?我目前正在通过Visual Studio 2017发布。
图片以供进一步了解
发布设置
已部署/发布的文件
我收到错误消息
编辑:
我尝试将文件移动到与ISS Manager相同的域上的/ public_html,似乎表明它期望配置文件存在。
这会导致不同的错误消息,如下所示。
答案 0 :(得分:2)
很难确切地说,但我认为问题在于服务器上未安装ASP.NET Core托管捆绑包。在IIS中托管有两部分。首先,您需要.NET Core运行时,然后需要IIS的ASP.NET Core托管模块。以自包含方式进行部署可以使您获得运行时,但不能为IIS中的托管模块带来收益。通过发布ASP.NET Core应用程序在Web.config中创建非标准部分。在IIS中,对于这些配置部分(尤其是主机)的托管模块进行了填充。因此,配置错误似乎暗示着这没有发生。
如果您不控制服务器,则无能为力。老实说,在这一点上,我不会在任何您对环境没有任何控制权的地方托管。您可以每月从5美元以下的费用中获得大量托管服务的完整VPS。要么继续托管在Azure中,要么寻找其他受尊敬的云提供商,例如DigitalOcean,AWS等。