在IIS上部署ASP.NET Core項目的步驟

來源:互聯網
上載者:User
這篇文章主要介紹了在IIS上部署ASP.NET Core項目的圖文方法,需要的朋友可以參考下

概述

與ASP.NET時代不同,ASP.NET Core不再是由IIS背景工作處理序(w3wp.exe)託管,而是使用自託管Web伺服器(Kestrel)運行,IIS則是作為反向 Proxy的角色轉寄請求到Kestrel不同連接埠的ASP.NET Core程式中,隨後就將接收到的請求推送至中介軟體管道中去,處理完你的請求和相關商務邏輯之後再將HTTP響應資料重新回寫到IIS中,最終轉達到不同的用戶端(瀏覽器,APP,用戶端等)。而設定檔和過程都會由些許調整,中間最重要的角色便是AspNetCoreModule,它是其中一個的IIS模組,請求進入到IIS之後便立即由它轉寄,並迅速重新導向到ASP.NET Core項目中,所以這時候我們無需設定應用程式集區來託管我們的代碼,它只負責轉寄請求而已。

部署之前要確保你的IIS上已經安裝了AspNetCoreModule託管模組,如果沒有的話,點擊這裡進行下載並安裝

一、安裝IIS

1、在控制台→程式→啟用或關閉Windows功能→勾選Internet Information Services以及Web管理工具下的IIS管理主控台

二、發布項目

1、發布我們上一篇建好的ASP.NET Core API項目,然後選擇IIS,建立一項發布配置

2、發布方法選擇檔案系統,然後設定一個發布路徑

3、設定檔可以根據你線上、線下的環境進行選擇,因為是基於.NET Core,所以目標框架為netcoreapp1.1,然後儲存發布即可

4、當然了,你還可以基於CLI的Publish命令進行發布,只需切換到Light.API根目錄下,輸入以下命令即可


dotnet publish --framework netcoreapp1.1 --output "E:\Publish" --configuration Release

framework表示目標框架,output表示要發布到的目錄檔案夾,configuration表示設定檔,等同於和上面我們通過管理器來發布的操作,

三、在IIS中添加網站

1、添加一個網站,設定一下名稱,並將路徑指向你剛才發布的檔案夾,然後啟動網站即可

2、設定應用程式集區的.NET CLR版本為“無Managed 程式碼”,因為剛才也說了,IIS是作為一個反向 Proxy的角色,並不需要它來Managed 程式碼

3、OK,大功告成,瀏覽一下我們的網站。

此時我的內心是崩潰的,沒有任何有用的提示資訊,看來只能自己動手查看應用程式的作業記錄了

4、設定IIS的日誌記錄方式為記錄檔和ETW事件

5、重新訪問網站,然後開啟Windows應用程式記錄檔,你會看到這樣一條資訊。意思是說你的應用程式已經由PID為3236的進程啟動,並且在25636的連接埠上監聽著。

我開啟工作管理員查看了一下,說的很對。應該是一切正常才對啊,那為啥訪問網站是404呢。

糾結了半天,原來是因為網站沒有自動重新導向到/swagger/ui頁面,重新訪問:http://192.168.1.105/swagger/ui,你會看到熟悉的畫面

6、最後一點,其實你還可以通過CLI來運行你發布的程式,切換到你發布檔案夾下,輸入以下命令:

dotnet Light.API.dll

看到這個提示,那麼說明你成功了。試著訪問一下:http://localhost:5000/swagger/ui

而此時你再回過頭來看工作管理員,那麼就會又多了一個dotnet的進程

寫在最後

至此,整個IIS的搭建已經完成,不知道你是否有所收穫。接下來不知道把它發布到Linux上,會有什麼樣的坑。不管怎樣,你的每一步,回過頭來看,都是值得的!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.