【问题标题】:How do I configure a .net core API to work in IIS?如何配置 .net 核心 API 以在 IIS 中工作?
【发布时间】:2023-04-03 01:40:02
【问题描述】:

我在 Visual Studio 2017 中创建了一个运行良好的 .net 核心 API。当我去部署它时,我收到错误消息 HTTP 错误 500.19,错误代码为 0x8007000d。我在网上找到了多种解决方案,例如确保安装了 windows 功能、删除 .net CLR 版本、更改应用程序池标识、更改 web.config 和 applicationHost.config,但没有任何效果。有没有办法明确地找出问题所在,或者我是否被无数可能的解决方案反复试验?您知道任何具体的解决方案吗?

以下是 IIS 设置和我的 Windows 功能的屏幕截图:

这是我的 web.config 文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <!--
    Configure your application settings in appsettings.json. Learn more at     http://go.microsoft.com/fwlink/?LinkId=786380
  -->
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*"
        modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="dotnet"
                arguments=".\DishbooksAPI.dll" 
                stdoutLogEnabled="false" 
                stdoutLogFile=".\logs\stdout" 
                forwardWindowsAuthToken="false" />
  </system.webServer>
</configuration>

这是 IIS 错误:

我尝试过的一些 stackoverflow 页面(这不是一个详尽的列表):

HTTP Error 500.19 when publish .net core project into iis

HTTP Error 500.19 with Error Code 0x8007000d visual studio 2017 while deploying .net core application

ASP.NET: HTTP Error 500.19 – Internal Server Error 0x8007000d

HTTP Error 500.19 - Internal Server Error web config .net core web api

asp.net core web api published in IIS after moved to different IIS server pc gives error 500.19

【问题讨论】:

标签: iis asp.net-core deployment iis-7 .net-core


【解决方案1】:

首先,您需要在网络服务器中安装ASP.NET Core Module。 这是download link

然后在网络服务器中安装 SDK or Runtime

疑难解答

如果仍然无法正常工作,请打开命令提示符。导航到 Web 应用程序文件夹并键入 dotnet YOUR_APP.dll。你应该看到这样的东西 -

C:\APIs> dotnet YOUR_APP.dll
Hosting environment: Production
Content root path: C:\APIs
Now listening on: http://localhost:5000
Application started: Press Ctrl+C to shut down.

这意味着您的应用程序可以在没有 IIS 的情况下在 Web 服务器中运行。然后你需要在 IIS 或其他一些东西中进行故障排除。

【讨论】:

    【解决方案2】:

    您需要在 IIS 上安装托管包

    https://dotnet.microsoft.com/download/dotnet-core

    步骤:

    1. 点击首选版本
    2. 搜索“Hosting Bundle”字样(应该在右侧)
    3. 安装相同
    4. 重新启动 IIS。验证您的网站,看看它的神奇之处

    为什么需要托管捆绑包?检查以下文章 https://dotnetcoretutorials.com/2019/12/23/hosting-an-asp-net-core-web-application-in-iis/

    如何检查是否安装了主机? How to determine if asp.net core has been installed on a windows server

    【讨论】:

      猜你喜欢
      • 2017-07-12
      • 2019-12-07
      • 1970-01-01
      • 1970-01-01
      • 2020-06-11
      • 1970-01-01
      • 1970-01-01
      • 2020-01-17
      • 2019-08-24
      相关资源
      最近更新 更多