如何配置 .net 核心 API 以在 IIS 中工作?
Posted
技术标签:
【中文标题】如何配置 .net 核心 API 以在 IIS 中工作?【英文标题】:How do I configure a .net core API to work in IIS? 【发布时间】:2018-05-30 19:45:26 【问题描述】:我在 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 错误:
我尝试过的一些 *** 页面(这不是一个详尽的列表):
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
【问题讨论】:
在 web.config 中设置stdoutLogEnabled="true"
并检查登录日志文件的内容。
这能回答你的问题吗? HTTP Error 500.19 with Error Code 0x8007000d visual studio 2017 while deploying .net core application
【参考方案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
步骤:
-
点击首选版本
搜索“Hosting Bundle”字样(应该在右侧)
安装相同
重新启动 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
【讨论】:
以上是关于如何配置 .net 核心 API 以在 IIS 中工作?的主要内容,如果未能解决你的问题,请参考以下文章
移动到不同的 IIS 服务器 pc 后在 IIS 中发布的 asp.net 核心 web api 给出错误 500.19 (0x8007000d)
在 IIS (10.0.17763.1) 上托管 .net5.0 核心 Web api 时出现问题
.NET core 3 API,在 Mac 上使用 Visual Studio Code 开发:如何在 IIS 上部署和配置?