1

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

我有 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) 中为其创建了一个站点,放入已发布的代码,并将应用程序池配置为运行“无托管代码”。我将端口设置为 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 时必须安装所有这些。

有什么我想念的想法吗?

谢谢

4

1 回答 1

8

我尚未安装 .NET Core Windows Server Hosting 捆绑包。我不知道有没有必要。

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

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

> net stop was /y
> net start w3svc

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

所有这些都包含在文档中。

于 2018-04-02T15:26:22.693 回答