如何配置.net核心API在IIS中工作?

时间:2018-05-30 19:45:26

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

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

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

enter image description here

这是我的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错误:

enter image description here

我尝试过的一些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

2 个答案:

答案 0 :(得分:2)

首先,您需要在网络服务器中安装 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或其他一些东西拍摄。

答案 1 :(得分:0)

您需要将托管捆绑软件安装在IIS上

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

步骤:

  1. 点击首选版本
  2. 搜索“托管捆绑包”字样(应在右侧)
  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