C# .NET 5.0 應用部署


.net core有三種部署方式

依賴框架部署FDD、獨立部署SCD、依賴框架的可執行文件FDE

1.依賴框架部署FDD==>使用場景較多

依賴系統已安裝的.net core庫(運行時,SDK),只包含自己的代碼和第三方的依賴項。

包含.dll文件

操作步驟:

第一步,選擇程序,右鍵發布,選擇文件發布

 

第二步:更多操作/編輯

 

 

 

 

 優點:

不必預先定義應用運行的目標操作系統,生成的可執行文件和庫,是通用的PE文件格式,.net core都可執行,

部署包比較小,自己的代碼和第三方的依賴項、降低磁盤空間、如果運行時更新--只需更新操作系統 

缺點:

系統上的.net core版本必須和應用目標的.net core版本一樣或高於

 

2.獨立部署SCD==>單獨、獨立

 

 

 

不依賴系統的.net core,自己的代碼和第三方依賴項,還包含.net core庫,獨立,同時還包括一個可執行文件.exe

優點:

可以單獨控制與應用一起部署的.net core版本

可以保證應用是能夠運行的

缺點:

不可移植,必須選擇應用的目標系統

部署包比較大

注:不同版本.net core對系統有要求,win10一般都支持

3.依賴框架的可執行文件FDE==>

針對系統優化,一般應用不多

注:

 

 

 

部署到IIS,有兩種方式

1.進程內托管

進程管理器(IIS、Windows服務):收到請求的時候啟用應用,並且在應用發生故障的時候負責重啟。

2.進程外托管

通過反向代理將請求轉發給應用

注:有什么區別?

進程內比進程外性能要高,進程外,多了一層轉發,環回適配器(網絡接口,用於將傳出的網絡流程返回給同一個計算機,Kestrel,這里也有性能的損失);

Kestrel功能比較弱,不應該直接把Kestrel暴露出去

NGINX只有進程外托管,代理服務器

 

發布后會生成Web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="dotnet" arguments=".\WebApplication1.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
    </system.webServer>
  </location>
</configuration>

hostingModel——設置部署到IIS方式:

1.hostingModel="inprocess"  ——啟用IIS

2.hostingModel="outofprocess"——啟用Kestrel

 

部署前更改部署IIS方式

選擇項目雙擊並添加配置項,如下圖所示:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM