tft每日頭條

 > 生活

 > 創建一個簡單的asp.net項目信息

創建一個簡單的asp.net項目信息

生活 更新时间:2024-12-28 10:12:27
概述

與ASP.NET時代不同,ASP.NET Core不再是由IIS工作進程(w3wp.exe)托管,而是使用自托管Web服務器(Kestrel)運行,IIS則是作為反向代理的角色轉發請求到Kestrel不同端口的ASP.NET Core程序中,随後就将接收到的請求推送至中間件管道中去,處理完你的請求和相關業務邏輯之後再将HTTP響應數據重新回寫到IIS中,最終轉達到不同的客戶端(浏覽器,APP,客戶端等)。而配置文件和過程都會由些許調整,中間最重要的角色便是AspNetCoreModule,它是其中一個的IIS模塊,請求進入到IIS之後便立即由它轉發,并迅速重定向到ASP.NET Core項目中,所以這時候我們無需設置應用程序池來托管我們的代碼,它隻負責轉發請求而已。

部署之前要确保你的IIS上已經安裝了AspnetcoreModule托管模塊,如果沒有的話,點擊這裡進行下載并安裝

創建一個簡單的asp.net項目信息(在IIS上部署你的ASP.NET)1

一、安裝IIS

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

創建一個簡單的asp.net項目信息(在IIS上部署你的ASP.NET)2

二、發布項目

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

創建一個簡單的asp.net項目信息(在IIS上部署你的ASP.NET)3

2、發布方法選擇文件系統,然後設置一個發布路徑

創建一個簡單的asp.net項目信息(在IIS上部署你的ASP.NET)4

3、配置文件可以根據你線上、線下的環境進行選擇,因為是基于.NET Core,所以目标框架為netcoreapp1.1,然後保存發布即可

創建一個簡單的asp.net項目信息(在IIS上部署你的ASP.NET)5

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

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

framework表示目标框架,output表示要發布到的目錄文件夾,configuration表示配置文件,等同于和上面我們通過管理器來發布的操作,如圖:

創建一個簡單的asp.net項目信息(在IIS上部署你的ASP.NET)6

三、在IIS中添加網站

1、添加一個網站,設置一下名稱,并将路徑指向你剛才發布的文件夾,然後啟動網站即可

創建一個簡單的asp.net項目信息(在IIS上部署你的ASP.NET)7

2、設置應用程序池的.NET CLR版本為“無托管代碼”,因為剛才也說了,IIS是作為一個反向代理的角色,并不需要它來托管代碼

創建一個簡單的asp.net項目信息(在IIS上部署你的ASP.NET)8

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

創建一個簡單的asp.net項目信息(在IIS上部署你的ASP.NET)9

此時我的内心是崩潰的,沒有任何有用的提示信息,看來隻能自己動手查看應用程序的運行日志了

4、設置IIS的日志記錄方式為日志文件和ETW事件

創建一個簡單的asp.net項目信息(在IIS上部署你的ASP.NET)10

5、重新訪問網站,然後打開Windows應用程序日志,你會看到這樣一條信息。意思是說你的應用程序已經由PID為3236的進程啟動,并且在25636的端口上監聽着。

創建一個簡單的asp.net項目信息(在IIS上部署你的ASP.NET)11

我打開任務管理器查看了一下,說得很對。應該是一切正常才對啊,那為啥訪問網站是404呢。

創建一個簡單的asp.net項目信息(在IIS上部署你的ASP.NET)12

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

創建一個簡單的asp.net項目信息(在IIS上部署你的ASP.NET)13

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

dotnet Light.API.dll

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

創建一個簡單的asp.net項目信息(在IIS上部署你的ASP.NET)14

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

創建一個簡單的asp.net項目信息(在IIS上部署你的ASP.NET)15

寫在最後

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

服務、思考、安全

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved