.NET Core發佈部署的文章園內有不少了,你們能夠自行百度,該篇主要想總結須要注意的地方,列舉先後端(好比前段 Vue,後端 WebAPI)在同一臺服務器上的主要兩種方式。前端
兩種方式:vue
1. 先後端不一樣站點,。(也就是兩個端口)json
2. 先後端一個站點。(只須要一個端口)windows
在部署環境上下載安裝SDK,注意下載的版本必定要和你編譯使用的版本一致,否則部署到IIS會報錯。後端
具體.Net Core版本、SDK版本、Runtime版本的對照關係見官網:api
Runtime(winth hosting) + SDK: https://dotnet.microsoft.com/download跨域
另,若是想在.NET Core 項目指定SDK版本,能夠參考以下命令操做:服務器
D:\proj\mq\test>dotnet --list-sdks 2.1.500 [C:\Program Files\dotnet\sdk] 2.1.801 [C:\Program Files\dotnet\sdk] 3.0.100 [C:\Program Files\dotnet\sdk] D:\proj\mq\test>dotnet new console -o testproj Getting ready... The template "Console Application" was created successfully. Processing post-creation actions... Running 'dotnet restore' on testproj\testproj.csproj... D:\proj\mq\test\testproj\testproj.csproj ???? 83.4 ms ???? Restore succeeded. D:\proj\mq\test>dotnet --version 3.0.100 D:\proj\mq\test>cd testproj D:\proj\mq\test\testproj>dotnet new global.json --sdk-version 2.1.500 The template "global.json file" was created successfully. D:\proj\mq\test\testproj>dotnet --version 2.1.500
// NetCore 後端部分app
0、編譯項目,保證代碼沒問題,並配置 CORS 跨域服務;post
app.UseCors (builder => builder
.AllowAnyOrigin ()
.AllowAnyMethod ()
.AllowAnyHeader ()
.AllowCredentials ());
①、發佈項目;//通常 publish 路徑是 bin/Debug/netcore2.2
②、拷貝到服務器指定文件夾;
③、IIS 添加站點;// 端口 1001
④、修改應用程序池爲「無託管」;//這也是爲啥要安裝 windows hosting 的緣由
⑤、安裝 windows hosting(服務託管);//這是一個捆包,已經包含 Runtime
⑥、重啓項目,查看是否正常;http://localhost:1001/
// Vue 前端部分
①、Build 項目;
②、拷貝到服務器指定文件夾;
③、IIS 添加站點;// 端口 1002
④、運行項目,查看是否正常;http://localhost:1002/
操做步驟和上邊的實際上是幾乎同樣的,只不過咱們不須要配置 CORS 跨域了,由於是同一個站點,且是隻須要一個端口號。
// NetCore 後端部分,和上邊的幾乎同樣,只不過不用進行 CORS 跨域設置
①、發佈項目;
②、拷貝到服務器指定文件夾;
③、IIS 添加站點;// 端口 1003
④、修改應用程序池爲「無託管」;//這也是爲啥要安裝 windows hosting 的緣由
⑤、安裝 windows hosting(服務託管);//這是一個捆包,已經包含 Runtime
⑥、重啓項目,查看是否正常;http://localhost:1003/
// Vue 前端部分
①、修改根路徑,而且 Build 項目;// 還要修改接口api的路徑
②、拷貝到服務器指定文件夾;//能夠和 core 項目放到一塊兒
③、修改 Core 的 IIS 站點,在它的站點內,嵌套一個vue站點(在Core的IIS站點右鍵選擇「添加應用程序」);// 取名爲 Vue
④、運行項目,查看是否正常;http://localhost:1003/vue/
最後一點,其實你還能夠經過CLI來運行你發佈的程序,切換到你發佈文件夾下,輸入如下命令:
dotnet NetCoreProj.API.dll