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

时间:2018-08-31 12:01:11

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

会发生什么?

我在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发布。

图片以供进一步了解

发布设置

Publish info

已部署/发布的文件

Deployedfiles

我收到错误消息

Error message

编辑:

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

这会导致不同的错误消息,如下所示。

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

new error message

1 个答案:

答案 0 :(得分:2)

很难确切地说,但我认为问题在于服务器上未安装ASP.NET Core托管捆绑包。在IIS中托管有两部分。首先,您需要.NET Core运行时,然后需要IIS的ASP.NET Core托管模块。以自包含方式进行部署可以使您获得运行时,但不能为IIS中的托管模块带来收益。通过发布ASP.NET Core应用程序在Web.config中创建非标准部分。在IIS中,对于这些配置部分(尤其是主机)的托管模块进行了填充。因此,配置错误似乎暗示着这没有发生。

如果您不控制服务器,则无能为力。老实说,在这一点上,我不会在任何您对环境没有任何控制权的地方托管。您可以每月从5美元以下的费用中获得大量托管服务的完整VPS。要么继续托管在Azure中,要么寻找其他受尊敬的云提供商,例如DigitalOcean,AWS等。