Windows服務器上部署.net core項目


一、環境

1、操作系統

公司用的是阿里雲服務器,選擇的鏡像是Windows操作系統,查詢Windows服務器版本的方式如下:

 

2、搭建dotnet core環境

 首先下載.NET Core Runtime,我項目的環境是core3.1,所以下載相應的,如下圖

  

下載完成后,執行exe文件,勾選同意安裝,然后等待安裝完成就行了

3、然后回到我們之前的項目中,右鍵項目,選擇發布。

選取發布目標,選擇文件夾,選擇路徑(我用的默認路徑),因為是部署到Windows服務器,所以目標運行時選擇可移植的,點擊發布

 

發布成功后,拷貝到服務器上

三、程序部署

微軟官網上提供了部署的文檔,可以看下,下面是我實際部署的過程。有兩種部署方法,第一種是執行命令行運行;第二種是通過IIS部署。推薦使用第二種常用的IIS部署方式

1、第一種方式

定位到發布文件中,按住Shift鍵不松,鼠標右鍵空白處,彈出的右鍵菜單有【在此處打開命令窗口】,點擊它打開命名窗口。

 

會發現我們cmd的路徑直接在該文件夾里,然后執行下面的命令(HyDataMiddleground.Admin是我的項目名)。

dotnet HyDataMiddleground.Admin.dll

會發現有一個地址,監聽本地的5000端口(該端口是默認的,有時間總結下如何自定義綁定端口號的方法

然后在服務器瀏覽器上輸入該地址就能訪問了

但這個是localhost本地的,我們想要在外網訪問需要改一下代碼,打開我們的項目,點擊Program文件。

 然后重新生成將dll文件拷貝到服務器上覆蓋,按照之前的方式運行

 輸入在自己電腦上輸入公網ip加上端口,就能成功訪問了(這里一定注意端口號要開放,不然外網通過IP訪問不到,除非使用域名的方式,有時間總結下這塊

2、第二種方式,通過IIS部署

首先,打開服務器管理器。在管理里點擊【添加角色和功能】

到選擇服務器角色,勾選【Web服務器(IIS)】。

然后選擇角色服務器,根據需求勾選。(我都勾上了,為了避免出現問題,反正用不用都先加上沒多大壞處 )。

安裝完成之后,打開我們的IIS管理器。

右鍵網站,選擇添加網站。輸入網站名稱,選擇文件路徑,輸入端口。

 然后點擊【應用程序池】,點開編輯我們剛剛創建的。

將.NET CLR版本的下拉框選擇為【無托管代碼】,確定。

然后打開網站,報錯了,查了一下是缺少了【AspNetCoreModule】托管模塊。

 

選擇根節點的服務器,打開【模塊】這一項。

發現沒有找到叫做【AspNetCoreModule】的托管模塊,emmmmm好像是漏掉了。重新打開我們下載的安裝程序,點擊【Repair】重新安裝。

等待重新安裝完成之后,重啟IIS管理器,再次打開【模塊】,發現已經有了。

然后我們訪問網站,成功出現Swagger文檔頁面,大功告成。

三、netcore部署IIS總結

1、netcore項目在IIS部署,可以部署為網站和應用程序,不能部署成虛擬目錄
2、netcore部署為應用程序
(1)出現的問題:netcoreapi無法加載出swagger
(2)原因:應用程序虛擬路徑/admin導致
(3)解決方法:在注入swagger服務的時候加入虛擬路徑即可,虛擬路徑virtualPath寫入配置文件,可修改。如下:
c.SwaggerEndpoint($"{virtualPath }/swagger/v1/swagger.json", "1.0.0");

3、vue項目部署為應用程序

(1)出現的問題:出現js/css 404的情況,
(2)原因是:應用程序虛擬路徑/web導致
(3)解決方法:在IIS中對web應用程序重寫路徑即可

 


免責聲明!

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



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