asp.net core + mysql + ef core + linux 以前開髮網站是針對windows平臺,在iis上部署。由於這次需求的目標伺服器是linux系統,就嘗試用跨平臺的.NET core來開發和部署。結果還是比較滿意,整個過程如下,歡迎交流: 開發環境: Win10 Vs201 ...
asp.net core + mysql + ef core + linux
以前開髮網站是針對windows平臺,在iis上部署。由於這次需求的目標伺服器是linux系統,就嘗試用跨平臺的.NET core來開發和部署。結果還是比較滿意,整個過程如下,歡迎交流:
開發環境:
Win10
Vs2015 update3+.NET Core tools
.NET Core SDK
Mysql
運行環境:
Ubuntu 16.04
.NET Core SDK
Mysql
Nginx
開發過程
- 安裝vs2015+update3;安裝mysql(https://dev.mysql.com/downloads/installer/ )
- 安裝 .NET core tools(https://www.microsoft.com/net/core#windowsvs2015 )
- 新建asp.net core項目
4.通過Nuget安裝MySql.Data.EntityFrameworkCore,Microsoft.EntityFrameworkCore.Tools。
在project.json文件中tools配置中增加"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
5.在appsettings.json中添加資料庫連接串配置。
6.項目中新增Models文件夾,添加User.cs
7.新增Data文件夾,添加ApplicationDbContext.cs,並修改Startup.cs文件中ConfigureServices方法。
8.新增Controller類UsersController.cs
9.新增視圖,Create, Delete, Details, Edit 以及Index Razor 視圖文件 (Views/Users)
10.在Views\Shared文件夾下新增部分視圖_ValidationScriptsPartial.cshtml
11.修改Views\Shared\_Layout.cshtml,增加<li><aasp-area="" asp-controller="Users" asp-action="Index">Users</a></li>
12.打開命令行工具,導航到項目文件夾 D:\DotNetCore\TestWebApp\src\TestWebApp
運行以下兩條命令:
dotnet ef migrations add Initial
dotnet ef database update
13.發佈網站項目
發佈前要修改Program.cs文件:
部署過程
- 把發佈的文件夾PublishOutput上傳到ubuntu虛擬機上。
- 在ubuntu上安裝.net core sdk (https://www.microsoft.com/net/core#linuxubuntu )
- 在ubuntu上安裝配置mysql,並配置mysql不區分表明大小寫,將應用資料庫從windows導入到ubuntu上。
- 按照文檔https://docs.microsoft.com/en-us/aspnet/core/publishing/linuxproduction 方法部署網站應用。
結果展示
在其他主機上訪問網站,能夠成功瀏覽網頁,進行操作。