乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      使用Visual Studio Code開發(fā)Asp.Net Core WebApi學(xué)習(xí)筆記(十)

       黃金屋1 2019-05-31

      本篇將在這個系列演示的例子上繼續(xù)記錄Asp.Net Core在Windows上發(fā)布的過程。

      Asp.Net Core在Windows上可以采用兩種運行方式。一種是自托管運行,另一種是發(fā)布到IIS托管運行。

      第一部分、自托管

      一、依賴.Net Core環(huán)境

      修改 project.json 文件內(nèi)容,增加發(fā)布時需要包含文件的配置內(nèi)容

      復(fù)制代碼
       1 {
       2   "version": "1.0.0-*",
       3   "testRunner": "xunit", // 設(shè)置測試工具為xunit
       4   "buildOptions": {
       5     "debugType": "portable",
       6     "emitEntryPoint": true
       7   },
       8   "dependencies": {
       9     "Microsoft.NETCore.App": {
      10       "type": "platform",
      11       "version": "1.0.0"
      12     },
      13     "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
      14     "Microsoft.AspNetCore.Mvc": "1.0.0",
      15     "Microsoft.Extensions.Logging": "1.0.0",
      16     "Microsoft.Extensions.Logging.Console": "1.0.0",
      17     "Microsoft.Extensions.Logging.Debug": "1.0.0",
      18     "Microsoft.Extensions.Logging.Filter": "1.0.0",
      19     "NLog.Extensions.Logging": "1.0.0-rtm-alpha2",
      20     "Autofac.Extensions.DependencyInjection": "4.0.0-rc3-309",
      21     "Microsoft.Extensions.Configuration": "1.0.0",
      22     "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
      23     "Microsoft.Extensions.Configuration.Json": "1.0.0",
      24     "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
      25     "xunit": "2.2.0-beta2-build3300",
      26     "dotnet-test-xunit": "2.2.0-preview2-build1029",
      27     "moq.netcore": "4.4.0-beta8",
      28     "Microsoft.AspNetCore.TestHost": "1.0.0",
      29     "Newtonsoft.Json": "9.0.1"
      30   },
      31   "frameworks": {
      32     "netcoreapp1.0": {
      33       // 設(shè)置兼容框架
      34       "imports": [
      35         "dotnet54",
      36         "portable-net45+win8"
      37       ]
      38     }
      39   },
      40   "publishOptions": {
      41     // 設(shè)置發(fā)布時需要包含的文件
      42     "includeFiles": ["appsettings.json", "nlog.config"]
      43   }
      44 }
      復(fù)制代碼

      打開cmd窗口,進(jìn)入到項目根目錄,輸入命令 dotnet publish ,項目將會進(jìn)行編譯發(fā)布

       

      輸入 dotnet xxx.dll 命令啟動程序

      訪問路徑 http://localhost:5000/api/users ,頁面正常顯示。

      二、自帶運行時發(fā)布

      在跨平臺發(fā)布時,.Net Core可以通過配置的方式指定目標(biāo)平臺,在發(fā)布時將對應(yīng)的運行時一并打包發(fā)布。這樣目標(biāo)平臺不需要安裝.Net Core環(huán)境就可以部署。

      再次修改 project.json 文件,增加目標(biāo)平臺

      復(fù)制代碼
       1 {
       2   "version": "1.0.0-*",
       3   "testRunner": "xunit", // 設(shè)置測試工具為xunit
       4   "buildOptions": {
       5     "debugType": "portable",
       6     "emitEntryPoint": true
       7   },
       8   "dependencies": {
       9     "Microsoft.NETCore.App": {
      10       //"type": "platform",   // 這個需要注釋掉
      11       "version": "1.0.0"
      12     },
      13     "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
      14     "Microsoft.AspNetCore.Mvc": "1.0.0",
      15     "Microsoft.Extensions.Logging": "1.0.0",
      16     "Microsoft.Extensions.Logging.Console": "1.0.0",
      17     "Microsoft.Extensions.Logging.Debug": "1.0.0",
      18     "Microsoft.Extensions.Logging.Filter": "1.0.0",
      19     "NLog.Extensions.Logging": "1.0.0-rtm-alpha2",
      20     "Autofac.Extensions.DependencyInjection": "4.0.0-rc3-309",
      21     "Microsoft.Extensions.Configuration": "1.0.0",
      22     "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
      23     "Microsoft.Extensions.Configuration.Json": "1.0.0",
      24     "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
      25     "xunit": "2.2.0-beta2-build3300",
      26     "dotnet-test-xunit": "2.2.0-preview2-build1029",
      27     "moq.netcore": "4.4.0-beta8",
      28     "Microsoft.AspNetCore.TestHost": "1.0.0",
      29     "Newtonsoft.Json": "9.0.1"
      30   },
      31   "frameworks": {
      32     "netcoreapp1.0": {
      33       // 設(shè)置兼容框架
      34       "imports": [
      35         "dotnet54",
      36         "portable-net45+win8"
      37       ]
      38     }
      39   },
      40   "publishOptions": {
      41     // 設(shè)置發(fā)布時需要包含的文件
      42     "includeFiles": [
      43       "appsettings.json",
      44       "nlog.config"
      45     ]
      46   },
      47   // 目標(biāo)平臺
      48   "runtimes": {
      49     "win7-x64": {},
      50     "win10-x64": {},
      51     "ubuntu.14.04-x64": {}
      52   }
      53 }
      復(fù)制代碼

      cmd窗口運行 dotnet restore 命令,還原目標(biāo)平臺相關(guān)的包。這個過程耗時較長。

      還原完成后,執(zhí)行 dotnet publish 命令進(jìn)行發(fā)布

      進(jìn)入對應(yīng)發(fā)布目錄,執(zhí)行 WebApiFrame.exe 文件即可啟動項目。

      如果不顯式指定目標(biāo)平臺,.Net Core默認(rèn)選擇當(dāng)前系統(tǒng)平臺。如果想指定目標(biāo)平臺,則需要執(zhí)行命令 dotnet publish -r {目標(biāo)平臺} 。下面展示的是發(fā)布到ubuntu環(huán)境下。

       

      第二部分、IIS托管

      首先要安裝一個工具.NET Core Windows Server Hosting。該工具支持將IIS作為一個反向代理,將請求導(dǎo)向Kestrel服務(wù)器。

      引入相關(guān)nuget包

      "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0"

      修改 Program.cs 內(nèi)容

      復(fù)制代碼
       1 using Microsoft.AspNetCore.Hosting;
       2 
       3 namespace WebApiFrame
       4 {
       5     public class Program
       6     {
       7         public static void Main(string[] args)
       8         {
       9             var host = new WebHostBuilder()
      10                 .UseKestrel()
      11                 .UseIISIntegration()
      12                 .UseStartup<Startup>()
      13                 .Build();
      14 
      15             host.Run();
      16         }
      17     }
      18 }
      復(fù)制代碼

      在項目根目錄添加web.config,并配置到發(fā)布包含文件列表中

      復(fù)制代碼
       1 <?xml version="1.0" encoding="utf-8"?>
       2 <configuration>
       3 
       4   <!--
       5     Configure your application settings in appsettings.json. Learn more at http://go.microsoft.com/fwlink/?LinkId=786380
       6   -->
       7 
       8   <system.webServer>
       9     <handlers>
      10       <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
      11     </handlers>
      12     <aspNetCore processPath="dotnet" arguments=".\WebApiFrame.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" />
      13   </system.webServer>
      14 </configuration>
      復(fù)制代碼

      執(zhí)行 dotnet publish 發(fā)布后開始配置IIS

      修改應(yīng)用程序池,.Net CLR版本修改為:無托管代碼

      啟動網(wǎng)站,訪問地址 http://localhost:8080/api/users ,頁面將顯示內(nèi)容。

      在上面的例子里,IIS通過Asp.Net Core Module,提供了反向代理的機制。

      通過訪問IIS地址,將請求導(dǎo)向Asp.Net Core內(nèi)置的Kestrel服務(wù)器,經(jīng)過處理后再反向回傳到IIS。整個過程IIS只作為一個橋梁,不做任何邏輯處理。

       

      最后的話

      這個系列到這里就告一段落了。之所以選擇使用Visual Studio Code工具開發(fā)Asp.Net Core Web Api,主要是想通過一點點慢慢搭建這個框架的過程中,逐步學(xué)習(xí)了解Asp.Net Core里幾個重要的特性和功能,未來在實際開發(fā)過程中能更好的選擇合適的技術(shù)方案。

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多