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

Core 2.0 Publish IIS HTTP Error 500.19 - Internal Server Error

我读了很多 post 都犯了同样的错误。我遇到的问题是我在开发解决方案的同一台机器上 运行ning。

我有 Windows 8.1 和 IIS 7.5。表示我 运行 在我的 IIS 上使用了几个 MVC 框架 XXX 解决方案,我没有遇到任何问题。当我发布解决方案Core 2.0时出现问题...

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

我有Visual Studio2017,所以我安装了SDK。

我已经在 IIS (inetpub/wwwroot) 中为其创建了一个站点,放入已发布的代码,并将应用程序池配置为 运行“无托管代码”。我将端口设置为 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 上?

当我从浏览器 运行 它时,我有这个错误

我的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 时必须安装所有这些。

知道我遗漏了什么吗?

谢谢

I have not installed the .NET Core Windows Server Hosting bundle. I do not know it is necessary.

这是你的问题。安装托管包。没有它,IIS 不知道如何处理 ASP.NET 核心应用程序。特别是,您在这里的错误是因为 <aspNetCore> 标签不存在供 Web.config 使用,也没有该捆绑包。因此,虽然错误有点迟钝,但它在技术上告诉您问题出在哪里。

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

> net stop was /y
> net start w3svc

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

所有这些都包含在 documentation 中。