Aspcore项⽬的发布和运⾏环境部署完整介绍
(Window+IIS7)
本⽅案是针对Windows server+IIS7 +asp core 2.1的部署⽅案。当然asp core项⽬⼀样可部署到其它OS上,还有Durck或Azure 或OpsDev上。如果Linux上,通过Kestrel代理,如果应⽤使⽤ Kestrel 服务器,Nginx、Apache 或 IIS 可⽤作反向代理服务器。反向代理服务器接收来⾃ Internet 的 HTTP 请求,并将这些请求转发到 Kestrel。
Asp core 项⽬有三种发布和运⾏部署⽅式:
1、依赖框架的部署。顾名思义,依赖框架的部署 (FDD) 依赖⽬标系统上存在共享系统级版本的 .NET Core。由于已存在 .NET Core,因此应⽤在 .NET Core 安装程序间也是可移植的。应⽤仅包含其⾃⼰的代码和任何位于 .NET Core 库外的第三⽅依赖项。 FDD 包含可通过在命令⾏中使⽤ dotnet 实⽤程序启动的 .dll ⽂件。例如,dotnet app.dll 就可以运⾏⼀个名为 app 的应⽤程序。
2、独⽴部署。与 FDD 不同,独⽴部署 (SCD) 不依赖⽬标系统上存在的共享组件。所有组件(包括 .NET Core 库和 .NET Core 运⾏时)都包含在应⽤程序中,并且独⽴于其他 .NET Core 应⽤程序。 SCD 包括⼀个可执⾏⽂件(如 Windows 平台上名为 app 的应⽤程序的),它是特定于平台的 .NET Core 主机的重命名版本,还包括⼀个 .dll ⽂件(如 app.dll),⽽它是实际的应⽤程序。
3、依赖框架的可执⾏⽂件。⽣成在⽬标平台上运⾏的可执⾏⽂件。类似于 FDD,依赖框架的可执⾏⽂件 (FDE) 是特定于平台的,⽽不是⾃包含的。这些部署的运⾏仍依赖于现有的 .NET Core 共享系统级版本。与 SCD 不同,应⽤仅包含代码和任何位于 .NET Core 库外的第三⽅依赖项。 FDE ⽣成在⽬标平台上运⾏的可执⾏⽂件。
基于Windows server+IIS7 +asp core 2.1的发部和部署⽅案过程如下:
IIS的安装与配置与asp 应⽤程序相同,就不再介绍。
1、应⽤程序配置
2安装.NET CORE运⾏时。
3、安装 core库
4、发布Web Api
5、配置站点
6、常见问题
⼀、应⽤程序配置
因为前后端分离,前端不需要 core⽀持,部分使⽤Razor页⾯默认asp就可以了。所以下配置都是针对Web Api项⽬。
1、Program.cs
Program.cs 调⽤ CreateDefaultBuilder 以开始设置主机:
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
CreateDefaultBuilder 将 Kestrel 服务器配置为 Web 服务器,并通过配置 ASP.NET Core 模块的基础路径和端⼝来启⽤ IIS 集成。
2、Web.Config配置
此⽂件在项⽬中不到,⼀般会在发布时⾃动⽣成。
重点是配置正确的processPath 。
processPath 是.Net Core的安装程序路径,⼀般默认就可以了。
stdoutLogEnabled表⽰应⽤程序是否⽣成⽇志,通过它可以查看异常情况。
nginx部署前端项目
stdoutLogFile是⽇志⽂件路径,Logs⽬录默认没有,要⼿⼯在应⽤程序根⽬录下创建。
所以安装2.0或更⾼版本。
安装之后要重启服务1)停⽌windows进和激活服务:net stop was /y 2 )重启web发布服务: net start w3svc 3)重启IIS: iisrest . 否则会出现 Http Error 502.5 - Process Failure 错误。
三、发布Web Api项⽬
1、发布前要配置项⽬⽣成属性“⽣成XML⽂档⽂件”;
2、如果有引⽤的下层 core程序集也要配置⽣成XML⽂档⽂件;
3、将项⽬选择为Release模式(开发编译时⽤的Debug模式)。
4、 cmd进⼊命令⾏(注意要在管理员权限下运⾏CMD),转向Web Api 应⽤程序所在的⽬录。我的是 D:\Workspace\do\WebPai
5、在命令⾏执⾏ dotnet publish -c release 。
6、发布完成
黄⾊提⽰不⽤管,这是编写代码习惯造成问题,不是错误,可以正常通过。发布的⽂件默认在⽬录bin\release\netcoreapp2.0 下。将⽬录下的所有⽂件拷贝到服务器IIS站点的⽬录下。
四、IIS中配置站点
1、添加站点
2、配置应⽤程序池
⾄此,asp core web api 应⽤程序完美发布与部署,跑起来试试,⼀切OK。
五、常见问题:
1 》返回500。这⾸先考虑是应⽤程序有误。
原因:
1、Program.cs没配置BuildWebHost
见第⼀步。
2、项⽬属性没有⽣成xml⽂档
这是引于 Swagger ⾃动⽣成帮助时必需要选中的。
2 》 Http Error 502.5 - Process Failure
原因是安装捆绑托管包后没有重启 WAS W3SVC
3 》 An error occurred while starting the application.
原因是版本没对应。我⽤的开发版本是asp2.0,所以要安装 2.0或以上版本。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。