如何在 IIS 上托管基本 ASP.NET Core 2 WebAPI 应用程序

How to host the basic ASP.NET Core 2 WebAPI application on IIS

我在主题中创建了一个应用程序,只需选择 "ASP.NET Core Web Application"、“.NET Core”、"ASP.NET Core 2.0"、"Web API"。

这将创建一个简单的应用程序,其中 'default' 调用 "api/values"、returns JSON 数组 '["value1"、"value2"](浏览器上只有一个小警告)。

到目前为止一切顺利。

现在我想在 IIS 上部署这个应用程序,只使用 FolderProfile,所以我构建了应用程序,发布了它,并且我有这个目录,其中包含 运行 它所需的所有文件。我看到添加了 web.config(它不在源代码中),具有正确的配置以使用生成的 dll 启动 运行time。

我把这个目录复制到一个物理目录,我在一个应用程序池中创建一个网站,简而言之,所有的东西,我按照常识建议配置它,因为我找不到任何教程 ASP.NET 核心 2。核心 1 的文档没有正确应用,因为有很多变化...

最后我总是得到这样的结果:

HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration data for the page is invalid.

生成的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=".\Core2WebService.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
  </system.webServer>
</configuration>
<!--ProjectGuid: 5c8e6f19-9a61-47c5-8ee1-8c4b54962ba2-->

我尽我所能,但最终结果总是这样……有什么想法吗? 谢谢

勾选Host on Windows with IIS documentation. Right now it looks like you at least forgot to Install the .NET Core Windows Server Hosting bundle

除了在 IIS 和 Kestrel 服务器之间创建反向代理之外,该捆绑包还将安装 ASP.NET 核心模块。

您可以直接从您的 .Net Core 应用程序发布。

我已经写了同样的分步指南,唯一不同的是,我解释了要托管应用程序而不是 Web API。

看这里:https://neelbhatt.com/2018/01/30/deploy-net-core-application-to-iis-step-by-step-guide/