0%

powershell 佈署 asp.net core 到 iis sub application

 
terminal

上線前為了方便讓前端可以去做畫面的調整建議把 csproj 內的 RazorCompileOnPublish 設定為 true

編譯之前建議先看這 黑暗執行緒的文章 很受用

有時需要切換環境測試所以直接使用 self-contained 命令

1
dotnet publish --self-contained true -r win10-x64

注意以下操作需要使用系統管理員 , 可以安裝 sudo 簡化流程

下載 NTFSSecurity 模組 , 並且引入 IIS 模組及 NTFSSecurity

1
2
3
Import-Module WebAdministration
Install-Module -Name NTFSSecurity -RequiredVersion 4.2.4
Import-Module NTFSSecurity

佈署 asp.net core 網站之前記得要下載 aspnetcore-windows-hosting-bundle

接著在 APpPool 建立 .net core 專屬的 AppPool

注意 AppPool 我測不出自動建立的方法 , 只好手動建立一個 no managed code 名為 NetCore 的 AppPool , 如果有人有找到方法歡迎告訴我感謝!

最後佈署 Asp.net Core 網站為 Default Web Site 的 Sub Application (這很無奈… 但就是很多地方只能讓你用 80 port 又不給你 domain name)

1
New-WebApplication -Name VideoExample -Site 'Default Web Site' -PhysicalPath D:\TestWebSite -ApplicationPool NetCore

給予權限 (以前都要按好多步驟 , 現在一行就搞定)

1
Add-NTFSAccess -Path 'D:\TestWebSite ' -Account IIS_IUSRS -AccessRights FullControl

最後切換到 IIS 目錄底下看看狀況

1
2
cd IIS:\Sites\Default Web Site\
ls

如果要移除 sub application 或是其他物件也很方便直接下 rm 就好了

關閉