簡單記錄一下,如何在IIS下部署Asp.Net Core Web Application + Angular app的項目。 環境:IIS 10, Asp.Net Core 2.0, Angular 4 CLI 步驟: 確認IIS已經安裝了AspNetCoreModule 新建一個站點,並配置該站點 ...
簡單記錄一下,如何在IIS下部署Asp.Net Core Web Application + Angular app的項目。
環境:IIS 10, Asp.Net Core 2.0, Angular 4 CLI
步驟:
-
確認IIS已經安裝了AspNetCoreModule
-
新建一個站點,並配置該站點的應用程式池為無托管類型
- 新建Asp.Net Core Web Application項目(預設創建,無需任何修改)。
- 在Startup.cs中,添加如下代碼:
public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseDefaultFiles(new DefaultFilesOptions { DefaultFileNames = new List<string> { "index.html" }, RequestPath = new PathString("") }); app.UseStaticFiles(); app.UseMvc(); }
- 新建Angular 4 CLI項目
-
(可選) 修改angular-cli.json的outDir配置:
-
發佈Angular 4 CLI項目。發佈後的代碼會自動生成到wwwroot文件夾中。
ng build -env=prod
- 將Angular 4 CLI中的wwwroot覆蓋Asp.Net Core項目中的(站點根目錄下的)wwwroot同名文件夾。
- 發佈Asp.Net Core項目。
donet publish -c release
- 將IIS站點資源文件路徑指向Asp.Net Core項目發佈後的文件夾。
- 大功告成。
從第7步至第9步,可以用批處理代替,節約時間。
main.bat
@echo off cls del /q E:\Projects\Trials\CJ\CJ\wwwroot\* del /q E:\Projects\Trials\CJ\CJ\bin\Release\netcoreapp2.0\publish\* del /q E:\Projects\Trials\CJ\deployment\* del /q E:\Projects\Trials\CJ\deployment\wwwroot\* echo 所有歷史文件已清除 echo 開始發佈Angular CLI程式 call cj_angular_publish.bat echo 開始發佈ASP.NET CORE程式 xcopy /s E:\Projects\Trials\CJ\cjweb\wwwroot E:\Projects\Trials\CJ\CJ\wwwroot cd E:\Projects\Trials\CJ\CJ dotnet publish -c release echo 開始IIS文件部署 rem iisreset /stop xcopy /s E:\Projects\Trials\CJ\CJ\bin\Release\netcoreapp2.0\publish E:\Projects\Trials\CJ\deployment rem iisreset /start @pause
cj_angular_publish.bat
E: cd E:\Projects\Trials\CJ\cjweb ng build -env=prod