今天拿到一台 全新的win 2012 服務器配置服務器環境 記錄一下
首先裝好IIS
打開服務器管理器 - 添加功能和角色











好 安裝完IIS 看一下服務器有沒有安裝 core的運行環境(全新服務器肯定是沒有的 但是還是要檢測一下 專業嘛 )
打開dos命令
運行dotnet 或者 dotnet --info 或者 dotnet --versin
如圖所示 沒有響應 果然不出所料 他是沒有安裝core的runtime的
微軟官網下載一下環境 網址:https://dotnet.microsoft.com/download/dotnet-core/2.2
我這次選擇下載的是 2.25版本(注意:此處不需要下載sdk)
安裝完之后 再次打開dos 運行 dotnet --info
果然不出所料 已經安裝好了
ok 發布一下本地代碼
發布.net core程序的時候,發現它是可以獨立部署的,它支持如下兩種部署方式:
- 依賴框架的部署FDD。只發布我們的程序,運行前用戶需要手動安裝.net core runtime。
- 獨立部署SCD。發布我們的程序和.net core runtime,即我們的程序可以運行在沒有安裝..net core runtime的機器上。
大多數時候,我們采用的是FDD模式,這樣發布的東西比較少,就幾個dll就夠了,並且能夠跨平台,經常是windows版本寫好的拿到linux上直接運行,非常方便。
一個簡單的示例如下: dotnet publish --self-contained -r win-x64
主要是加入了--self-contained指令,另外,由於FDD模式發布的是原生程序,因此還需要用-r指定運行平台。
這種方式下,由於將runtime一並發布了,發布的程序占用空間較大,我試了一下,大概有60m,壓縮后也有28m。不過有人發布了一個程序IL Linker,它可以分析程序實際依賴的dll,將沒有使用到的dll從打包中剔除,號稱可以將體積縮小一半。
需要注意的是,即使是以獨立方式發布的.net core程序,也不一定能在對方的機器上運行還需要滿足..net core運行環境才行,具體可以參考官方文章Windows 上 .NET Core 的決條件。簡單的來講,對於低版本的windows(如win7),需要如下兩個條件:
- VC 2015 RunTime
- Windows補丁DB2999226,可能還需要KB2533623
另外,微軟也在開發一個大招AOT CoreRT,類似之前提的.net native,簡單的來書就是通過AOT將.net core程序直接編譯成native程序,園子里有人體驗過,最終發布的一個asp.net core程序也不到4m,可以說非常苗條了,並且native程序理論上也可以提升啟動速度,希望微軟能早日完成這個項目。
參考文章:
無特殊配置,需要注意的是,將應用程序池中對應的項修改為 無托管代碼 。