ASP.NET CORE API 部署到IIS 上

今天在部署一个asp.net core api时候,出现的一个问题,主要原因还是自己对core 应用部署不是太清楚导致的,这里把问题描述一下,然后把如何asp.net core api部署到iis的步骤记录一下。

问题:

部署完成以后,一直提示

HTTP错误 500.19-Internal Server Error 错误代码:0x8007000d

分析原因;

这是一个.net core 的api,我已经安装了aspnetcore-runtime, 想当然的以为就可以访问者api了。 最后找到原因是过程中少了DotNetCore.2.0.0-WindowsHosting.exe. 安装这个之后,成功调用api。那么这个东西到底是啥鬼呢。

 .NET Core Windows Server 托管捆绑包创建 IIS 与 Kestrel 服务器之间的反向代理。ASP.netCore使用的是自托管web服务器Kestrel。 所以IIS只是一个代理作用。

正确在iis部署asp.net core 应用的步骤:

  1. 添加IIS
  2. ASP.NET CORE RUNTIME
  3. DotNetCore.2.0.0-WindowsHosting.exe

编译程序过程;

  1. pushd D:\tool
    nuget.exe restore "D:\zzzzzzzzzzzzzzzzzzr.API.sln" -ConfigFile "C:\Users\Administrator\AppData\Roaming\NuGet\NuGet.Config" -NoCache
  2. pushd C:\Program Files\dotnet
    dotnet publish -c release -o "C:\jxxxxng" "D:\xxxyyyketing.Api.csproj"

新问题:

Application 'MACHINE/WEBROOT/APPHOST/TESTJIEBAOMARKETINGAPI' with physical root 'C:\inetpub\xxxxxxt\Api\' failed to start process with commandline 'dotnet .\xxxxx.Api.dll', ErrorCode = '0x80004005 : 80008096.

找到原因。在命令行下面运行

C:\inetpub\JiebaoMarketingTest\Api>dotnet Jxxxxg.Api.dll
It was not possible to find any compatible framework version
The specified framework 'Microsoft.AspNetCore.App', version '2.1.1' was not foun
d.
  - Check application dependencies and target a framework version installed at:
      C:\Program Files\dotnet\
  - Installing .NET Core prerequisites might help resolve this problem:
      https://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
  - The .NET Core framework and SDK can be installed from:
      https://aka.ms/dotnet-download
  - The following versions are installed:
      2.1.0-rc1-final at [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.Ap
p]

在环境下安装相应的asp.net core framework就可以了

猜你喜欢

转载自blog.csdn.net/wangweimic/article/details/87880372