Asp.Net項目發佈 到 IIS、 Core3.1 發佈到 IIS CentOS8.x

摘要:發佈項目到IIS或者.Net Core 項目發佈到IIS服務器或者CentOS記錄一下,後面忘了又來看看。html

一、服務器安裝IIS

1.一、無論你是本地的電腦仍是網上購買的服務器,只要是能經過遠程桌面登陸進去的。裝的系統是Windows的。打開控制面板找到程序,點擊《啓動或關閉Windows》功能

 1.二、遠程服務器還能夠打開服務器管理器打開,在這裏安裝IIS須要的一些功能本地服務器跟遠程都在下面展現

 1.三、選擇完點擊下一步,從互聯網選擇更新等待安裝,安裝好了最好重啓一下。重啓好了。打開控制面板----管理工具--------IIS管理器 看圖是下一個不是上一個  建議右擊保存到開始屏幕後面好找linux

1.五、 打開右擊網站,添加網站,以下圖所示,網站名字就是一個命名,應用程序能夠共用一個也能夠新建,後面還要配置應用程序池,通常選擇集成的類型,.Net 項目(除了Core)選擇.NET CLR v4.xxx的版本,若是沒有,就是安裝功能的時候你沒有添加。

 

 運行起來就算只有一個Index.html文件都能訪問。若是沒有出來考慮一下錯誤nginx

一、網站沒有權限,你要點擊網站下面你創建的那個網站受權。授予IIS的權利;web

二、.Net CRL版本太低了如今有的.Netfarnwork都用了4.8了IIS上面不支持了那麼高的,還要自行安裝;shell

三、端口沒有開放,遠程服務器的端口要去控制檯本身開的,個人是阿里雲,就要上控制檯管理出站入站規則裏面添加出站、進站規則;小程序

四、防火牆的問題,關了試試;api

五、目錄瀏覽打開了,須要關閉安全

我遇到的問題暫時只能想到這幾個,萬事開頭難,建議仍是用一個靜態網頁先試試慢慢排查。服務器

二、.Net Core3.1發佈IIS

 .2.一、Net Core3.1 發佈到IIS要安裝兩個工具  aspnetcore-runtime  跟 dotnet-hosing

 

 

SDK下載也是在這裏開發環境用的。我用的VS2019 發佈的發佈爲文件夾的格式而後拷貝到服務器上面同樣的 右擊網站---添加網站: asp.net

 

注意:

一、這裏的應用程序池要改成.NET CLR版本選擇無託管代碼;

二、若是安裝了dotnet-hosing其餘的項目啓動503 就安裝這個  https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=48145 

三、https訪問

我的的話建議申請一個免費的,個人是阿里雲的 一年申請一次,而後下載證書綁定在網站上。通常都是80默認的端口才加證書用https訪問的右擊網站下面的端口80的網站名稱 -------編輯綁定-------類型選擇https 下面就有SSL證書添加進去。

通常這裏寫小程序的API就須要這種https的安全鏈接 哈哈。要把443端口映射到80端口上自行度娘就不在累贅了。

四、Core 3.1 WebApi 部署到CentOS 8.x上

個人是CentOS8的系統,首先要鏈接linux就要有工具  下載xsheel《 http://www.yijianlan.com:8040/Home/Down?id=6025 》我本身的服務器有點慢哦;或者去官方下載我就不找連接了

 

4.二、安裝Core3.1 運行環境.net core runtime  若是服務器只是用來運行core 程序安裝這個就能夠了。若是要作開發和編譯工做,則須要安裝.net core sdk.net core sdk包含了.net core runtime,因此這裏就直接安裝.net core skd了  。

執行命令:  sudo yum install dotnet-sdk-3.1       安裝.net core 3.1 sdk

4.三、用VS2019建立一個Core3.1 發佈到文件夾,而後打開xftp或者點擊這個新建文件傳輸吧編譯好的文件上傳

通常我都是在這個裏面新建一個文件吧發佈好的直接粘貼進去  我這裏是打開api進去粘貼的

 

 

運行命令 找打項目的目錄 並找到 項目名.dll這個文件 用dotnet 運行

 默認就是5000端口打開 是打不開的 報錯Unable to bind to http://localhost:5000 on the IPv6 loopback interface: 'Cannot assign requested address'.」 這不必擔憂也不用糾結5000端口用不了指定另外一個端口就好了

打開項目的Program。cs文件編輯  我這裏改了8020端口 固然改了端口要在系統裏面開放端口,還有在服務器控制檯開啓端口不要忘了

public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseUrls("http://*:8020")
                    .UseStartup<Startup>();
                });
    }

 補充一點命令 後面用到直接來拿:

firewall-cmd --zone=public --add-port=8020/tcp --permanent   # 開放8020端口

firewall-cmd --zone=public --list-ports                                             #查看防火牆全部開放的端口

firewall-cmd --reload        # 配置當即生效

sudo systemctl start firewalld         #打開防火牆

systemctl stop firewalld.service             #關閉防火牆

firewall-cmd --state   #查看防火牆狀態

shutdown -r now             #馬上重啓(root用戶使用)

4.4 添加nginx作反向代理

  1 使用命令 sudo yum install epel-release      添加nginx包存儲庫

  2 使用命令 sudo yum install nginx       安裝nginx

  3 使用命令 sudo systemctl start nginx 啓動nginx

  4 使用命令 ps -ef |grep nginx 驗證nginx是否啓動成功

     5 可使用命令 sudo systemctl enable nginx 設置nginx開機啓動

   6 使用命令 sudo systemctl start nginx重啓nginx

4.5  配置nginx,設置代理端口

 訪問 8020 端口是能夠的

 

4.6 添加守護進程

爲何要添加守護進程,有如下緣由

  1 asp.net core程序運行在shell中,shell關閉會致使該web應用關閉

  2 應用程序意外終止的話須要在shell裏從新啓動

  3 服務器宕機或者意外重啓的話,須要從新啓動shell,而後從新啓動web程序

4.7使用守護進程supervisor

  1)相關命令

  1 使用命令 yum install epel-release 和 yum install supervisor 安裝supervisor

  2 使用命令 systemctl start supervisord.service 啓動服務

  3 使用命令 systemctl status supervisord.service 查看服務狀態

  4 設置開機啓動 systemctl enable supervisord.service

  5 重啓 supervisorctl reload

  2)文件配置

  1 在 /etc/supervisord.d 建立文件 WebApplication1.ini

  2 配置 WebApplication1.ini 以下

4.8 備註

1) nginx.conf配置

server {
        listen 8081;
        location / {
            proxy_pass http://localhost:8090;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection keep-alive;
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
        }
    }

1) MyBuy.Api.ini配置

[program: MyBuy.Api]  ;程序的名稱
command = dotnet  MyBuy.Api.dll ;執行的命令
directory = /var/WebApplication/ ;命令執行的目錄
environment = ASPNETCORE__ENVIRONMENT=Production  ;環境變量
user = root  ;執行進程的用戶
stopsignal = INT  
autostart = true  ;是否自動啓動
autorestart = true  ;是否自動重啓
startsecs = 1  ;自動重啓間隔
stderr_logfile = /var/log/WebApplication1.err.log  ;標準錯誤日誌
stdout_logfile = /var/log/WebApplication1.out.log  ;標準輸出日誌

五、總結

折騰了半天,服務器換了好幾個系統了哈哈重要折騰出來了,雖然用的少,多得都在擼碼,記錄一下長點記憶。知識就是慢慢積累起來只有一步一步的來。離三十歲又近了一步哈哈。

每日一句:千里煙雲,是誰留下的孤寂年華?誰人在他的盡頭畫上愛的符號,聆聽千古不變的亙古傳情佳話?流水無情,落花有意,你輕快的步伐,帶走了多少人間絕美佳話?任相思成河,今後流盡迢迢山水,走遍氤氳天下。

本文連接:http://www.javashuo.com/article/p-wcebdyiy-nn.html

相關文章
相關標籤/搜索