Core 2.0发布IIS HTTP错误500.19 - 内部服务器错误

时间:2018-04-02 14:24:05

标签: iis asp.net-core visual-studio-2017 publish kestrel

我已经阅读了很多帖子,但我遇到了同样的错误。我遇到的问题是我在开发解决方案的同一台机器上运行它。

我有Windows 8.1和IIS 7.5。 Express我在IIS上运行了几个MVC Framework XXX解决方案,我没有遇到任何问题。当我发布解决方案Core 2.0时会出现问题...

我创建了一个基本的Web Core 2.0 MVC解决方案。它只是默认创建的同一个项目。 (创建了一个Core 2.0 MVC并发布它。)

我有Visual Studio 2017,所以我安装了SDK。

我在IIS(inetpub / wwwroot)中为它创建了一个站点,放入已发布的代码,并将App Pool配置为运行“No Managed Code”。我将端口设置为5010。

当我从cmd:dotnet core20.dll运行项目时,它表示正在运行侦听端口5000,而不是端口5010.

所以,我设置了端口5000,但是当我从cmd运行它时显示错误。

Microsft.AspNetCore.Server.Kestrel[0] Unable to bind to localhost:5000 on the IPv4 loopback interface: Error 4092 EACCES permission denied. Unabled to start Kestrel.

如果我设置端口5010,为什么它在端口5000上运行?

当我从浏览器运行它时出现此错误

enter image description here

我的web.Config是在发布时创建的基本web.config ..

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="dotnet" arguments=".\core20.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
  </system.webServer>
</configuration>
<!--ProjectGuid: 21dc60b6-a958-447d-8ed3-25a6195a06ea-->

On Windows Features turn on or off--> IIS Services--> Application Development Features,选择了所有选项

我有错误

我对Core 2.0 Angular应用程序有同样的问题......所以我想安装一些东西。

我没有安装the .NET Core Windows Server Hosting bundle。我不知道这是必要的。

我不知道是否必须安装Kestrel,或者如何安装它。

我在安装Visual Studio 2017时必须安装所有这些。

我缺少什么想法?

感谢

1 个答案:

答案 0 :(得分:5)

  

我还没有安装.NET Core Windows Server Hosting软件包。我不知道这是必要的。

有你的问题。安装托管包。没有它,IIS不知道如何处理ASP.NET Core应用程序。特别是,这里的错误是因为Web.config没有使用<aspNetCore>标记,也没有该包。所以,虽然错误有点迟钝,但技术上却告诉你问题是什么。

此外,安装捆绑包后,您必须重新启动服务器或完全停止并重新启动IIS服务( iisreset):

> net stop was /y
> net start w3svc

最好完全重启服务器,如果可以的话,只是为了确保一切都很新鲜,但启动和停止Web服务应该足以在ASP.NET Core模块中加载。

所有这些都包含在documentation