關於Anolis8/Centos8系統重啟後ip地址不顯示的原因

来源:https://www.cnblogs.com/kirin365/archive/2023/11/20/17843049.html
-Advertisement-
Play Games

關於Anolis8/Centos8系統重啟後ip地址不顯示的原因 版權聲明:原創作品,謝絕轉載!否則將追究法律責任。 ————— 作者:kirin #、今天把之前在VMware安裝的Anolis8系統重啟了,啟動之後發現Xshell連接不上。在VMware上登錄後執行ip a命令發現ip地址不見了 ...


關於Anolis8/Centos8系統重啟後ip地址不顯示的原因

版權聲明:原創作品,謝絕轉載!否則將追究法律責任。 ————— 作者:kirin

#、今天把之前在VMware安裝的Anolis8系統重啟了,啟動之後發現Xshell連接不上。在VMware上登錄後執行ip a命令發現ip地址不見了

#、我的網卡配置信息如下:
[[email protected] ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
TYPE=Ethernet
PROXY_METHOD=none
BOOTPROTO=static
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=10.0.0.103
PREFIX=255.255.255.0
GATEWAY=10.0.0.2
DNS1=223.5.5.5
DNS1=223.6.6.6
#、然後在網上查了一圈,發現關於Anolis8系統網卡配置的文章少之又少,把搜索關鍵字`Anolis`換成`Centos`之後總算是找到了一些有用的文章。Anolis(龍蜥)系統其實就是復刻的Centos。

8系統與7不一樣,在Anolis8之後,不再使用`network.service `(只能手動去安裝),預設安裝的是`NetworkManager.service`

1、解決方法

#1、啟動NetworkManager.service服務
[[email protected] ~]# systemctl start NetworkManager

#2、重新載入網卡配置文件
[[email protected] ~]# nmcli c reload eth0

#3、激活網卡
[[email protected] ~]# nmcli d connecteth0

#4、再次執行ip a命令,發現ip地址已經出來了。但是這個地址是不對的。我配置的網卡地址是:10.0.0.103。
因為我實在是不熟悉使用`NetworkManager.service`服務的`nmcli`命令。只能繼續使用`network.service `了哈哈

#5、安裝`network.service `服務
[[email protected] ~]# yum install -y network-scripts.x86_64

#6、關閉`NetworkManager.service`
[[email protected] ~]# systemctl stop NetworkManager
[[email protected] ~]# systemctl disable NetworkManager

#7、啟動`network.service `服務,再次執行ip a命令查看網卡ip。發現已經可以了
[[email protected] ~]# systemctl start network.service
[[email protected] ~]# ip a

雖然服務起來了,ip也有了,但是我們發現。目前在eth0這塊網卡上有兩個ip,是因為`NetworkManager.service`服務雖然關閉了,但是網卡配置還在。此時我們在重啟一下`network.service `服務就可以了。Xshell連接也沒問題了。

[[email protected] ~]# systemctl restart network.service
[[email protected] ~]# ip a

#、系統重啟下,驗證`network.service `服務 可用性
重啟後重新連接。是沒問題的。執行`ip a`命令可以看到ip地址。問題得到解決!

2、Anolis8網路配置詳細介紹

2.1、NetworkManager介紹

2.1.1、Anolis8網路配置的區別

#、在 CentOS7上同時支持network.service和NetworkManager.service。預設情況下,這2個服務都有開啟。在Anolis8和CentOS8上,已廢棄network.service(只能手動去安裝),預設安裝的是NetworkManager.service,因此推薦通過NetworkManager.service進行網路配置,網卡配置包括設置動態和靜態IP。

2.1.2、NetworkManager作用

#、NetworkManager是2004年Red Hat啟動的項目,旨在能夠讓Linux用戶更輕鬆地處理現代網路需求,尤其是無線網路,能自動發現網卡並配置ip地址。類似在手機上同時開啟wifi和蜂窩網路,Anolis8網路自動探測可用網路並連接,無需手動切換Anolis8網卡。

2.1.3、NetworkManager支持的網路

#、NetworkManager支持的網路:
有線網卡、無線網卡
動態ip、靜態ip
乙太網、非乙太網
物理網卡、虛擬網卡

2.1.4、NetworkManager使用方式

#、NetworkManager使用方式
nmcli:命令行
nmtui:在shell終端開啟文本圖形界面
Freedesktop applet:如GNOME上自帶的網路管理工具
cockpit:redhat自帶的基於web圖形界面的"駕駛艙"工具,具有dashborad和基礎管理功能

#、使用 nmcli 時,NetworkManager 必須保持開啟。

#、NetworkManager 的相關命令:
查看運行狀態:systemctl status NetworkManager
啟動:systemctl start NetworkManager
重啟:systemctl restart NetworkManager
關閉:systemctl stop NetworkManager
查看是否開機啟動:systemctl is-enabled NetworkManager

開機啟動:systemctl enable NetworkManager
禁止開機啟動:systemctl disable NetworkManager

#、註意:NetworkManager 中開頭的 N 和中間的 M 必須大寫。

2.2、nmcli常用命令

2.2.1、nmcli介紹

在NetworkManager里,有2個維度:連接(connection)和設備(device),可以為一個設備配置多個連接,這裡特別需要指出的是,一個設備只能有一個活躍連接,每個連接可以理解為一個 ifcfg 配置文件。

2.2.2、顯示 NetworkManager 是否接管網路設置:

[[email protected] ~]# nmcli networking
enabled

#、networking 可以簡寫為 n、ne、net、netw…… 所以以上命令可以簡寫為:
nmcli n

2.2.3、查看網路連接狀態:

[[email protected] ~]# nmcli n connectivity
full

2.2.4、NetworkManager 接管網路設置:

#、設定 NetworkManager 接管網路設置
[[email protected] ~]# nmcli n on

#、取消 NetworkManager 接管網路設置:
[[email protected] ~]# nmcli n off

2.2.5、nmcli general

#、顯示系統網路狀態:
[[email protected] ~]# nmcli general status
STATE   CONNECTIVITY  WIFI-HW  WIFI    WWAN-HW  WWAN   
已連接  完全          已啟用   已啟用  已啟用   已啟用

#、general 可以簡寫為 g、ge、gen、gene……
#、status 是 general 的預設項,可以省略不寫。所以,以上命令可簡寫為:
[[email protected] ~]# nmcli g
STATE   CONNECTIVITY  WIFI-HW  WIFI    WWAN-HW  WWAN   
已連接    完全           已啟用   已啟用   已啟用   已啟用 
connected  full       enabled  enabled  enabled  enabled

#、其中:
STATE 顯示網路是否連接;
CONNECTIVITY 與前面介紹的 nmcli networking connectivity 相同;
WIFI-HW 表示 WIFI 硬體開關、WIFI 表示 WIFI 軟體開關;
WWAN-HW 表示 WWAN 硬體開關、WWAN 表示 WWAN 軟體開關。
HW 代表 HardWare,WWAN 代表 Wireless Wide Area Network。

2.2.6、顯示主機名:

[[email protected] ~]# nmcli g hostname
anolis8
[[email protected] ~]# nmcli g h
Anolis8.6

#、更改主機名:
nmcli g hostname newHostName 
#或 
nmcli g h newHostName

#、註意:
newHostName是你設置的新主機名。
主機名存放在 /etc/hostname 文件中。
修改主機名後,需要重啟 NetworkManager。

2.2.7、顯示所有網路連接的信息:

[[email protected] ~]# nmcli connection show
NAME    UUID                                  TYPE      DEVICE 
ens192  c296eeaa-0c9a-4621-8b32-4903e26009f9  ethernet  ens192 

#、connection 可以簡寫為 c、co、con、conn……
#、show 是 connection 的預設項,可以省略不寫。所以,以上命令可簡寫為:
[[email protected] ~]# nmcli c
NAME    UUID                                  TYPE      DEVICE 
ens192  c296eeaa-0c9a-4621-8b32-4903e26009f9  ethernet  ens192

#、nmcli connection show 有一個 -active 參數,可以只顯示當前啟動的連接:
nmcli c s --active  
#或
nmcli c s -a  # 因為 show 後面有參數項,所以此時的 show 不能省
[[email protected] ~]# nmcli c s -a
NAME    UUID                                  TYPE      DEVICE 
ens192  c296eeaa-0c9a-4621-8b32-4903e26009f9  ethernet  ens192

#、顯示某一特定連接的詳細信息(以 ens192 為例):
[[email protected] ~]# nmcli c s ens192
connection.id:                          ens192
connection.uuid:                        c296eeaa-0c9a-4621-8b32-4903e26009f9
connection.stable-id:                   --
connection.type:                        802-3-ethernet
connection.interface-name:              ens192
connection.autoconnect:                 是
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
connection.multi-connect:               0(default)
connection.auth-retries:                -1
connection.timestamp:                   1664789124
connection.read-only:                   否
......
DHCP4.OPTION[25]:                       subnet_mask = 255.255.255.0
IP6.ADDRESS[1]:                         fe80::18b9:6600:f377:2d7b/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 100
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255

2.2.8、啟動指定連接:

[[email protected] ~]# nmcli c up ens192
連接已成功激活(D-Bus 活動路徑:/org/freedesktop/NetworkManager/ActiveConnection/2)

#、如果 ens192 本來就出於連接狀態,那此命令會重啟 ens192。

#、關閉指定連接:
nmcli c down ens192
關閉連接後,使用 nmcli c 命令, DEVICE 項將顯示為 – 。

2.2.9、修改連接:

nmcli c modify ens192  [ + | - ]選項 選項值  # 或
nmcli c m ens192  [ + | - ]選項 選項值

#、下麵給出常用修改示例:
nmcli c m ens192 ipv4.address 192.168.100.83/24   # 修改 IP 地址和子網掩碼
nmcli c m ens192 ipv4.method manual               # 修改為靜態配置,預設是 auto
nmcli c m ens192 ipv4.gateway 192.168.100.1        # 修改預設網關
nmcli c m ens192 ipv4.dns 192.168.100.1          # 修改 DNS
nmcli c m ens192 +ipv4.dns 114.114.114.114      # 添加一個 DNS
nmcli c m ens192 ipv6.method disabled           # 將 IPv6 禁用
nmcli c m ens192 connection.autoconnect yes     # 開機啟動

#、註意,必須先修改 ipv4.address,然後才能修改 ipv4.method!
用空引號""代替選項的值,可將選項設回預設值(以 ipv4.method 為例):

nmcli c m ens192 ipv4.method ""

#、選項有很多,詳細信息可以通過以下命令查看:
man 5 nm-settings-nmcli

#、主要可以看裡面 connection setting 和 ipv4 setting 部分。

2.2.10、新增連接:

nmcli c add tyep 連接類型 選項 選項值  
#或
nmcli c a tyep 連接類型 選項 選項值

#、type 為必選項,我們通常用到的是 802-3-ethernet(別名 ethernet)。

#、選項與前面介紹的“修改連接”中的選項一樣,其中重要的幾個選項:
connection.id(別名 con-name):連接名;
connection.interface-name(別名 ifname):設備名;
connection.autoconnect(別名 autoconnect):是否開機自啟,其值只能是 yes 或 no,預設 yes。

#、下麵給出一個示例:
nmcli c a type ethernet con-name ens36 ifname ens36

2.2.11、刪除指定連接:

nmcli c delete ens33  
#或
nmcli c de ens33     # delete 不可簡寫為 d,否則與 down 衝突,但可以簡寫為 de

2.2.12、重載所有連接的配置文件:

nmcli c reload  
#或
nmcli c r

#、重載某一指定連接的配置文件:
nmcli c load ifcfg-ens192 
#或
nmcli c l ifcfg-ens192    

#、網路配置文件預設保存在 /etc/sysconfig/network-scripts/ 路徑下,如果配置文件在其它位置,則需要填寫完整路徑。
網路配置文件的命名方式就是ifcfg-連接名,例如 ens33 的配置文件名為ifcfg-ens33。


#、網路配置文件說明:
TYPE="Ethernet" //乙太網,還有其他的如bond,bridge
PROXY_METHOD="none"//預設代理方式:關閉狀態
BROWSER_ONLY="no" //預設只是瀏覽器:否
BOOTPROTO="none" //dhcp 表示動態獲取IP地址, static 表示表態IP,none表示不指定,就是靜態
DEFROUTE="yes" //預設路由:是
IPV4_FAILURE_FATAL="no" //是否開啟IPV4致命錯誤檢測:否
IPV6INIT="yes" //預設IPV6是否自動初始化: 是
IPV6_AUTOCONF="yes" //預設IPV6是否自動配置:是
IPV6_DEFROUTE="yes" //預設IPV6是否預設路由:是
IPV6_FAILURE_FATAL="no" //如果IPv4或IPv6配置失敗,此介面將被禁用,否:如果配置失敗,此介面不會被禁用
IPV6_ADDR_GEN_MODE="stable-privacy" //IPV6地址生成模型
NAME="ens192" //名稱
UUID="51e111fd-ec09-44f5-8163-81d8f8ebc8f4" //唯一ID
DEVICE="ens192" //設備名稱
ONBOOT="yes" //開啟啟動
IPADDR="192.168.100.83" //IP
PREFIX="24" //子網掩碼長度
GATEWAY="192.168.100.1" //網關
DNS1="114.114.114.114" //DNS1
DNS2="8.8.8.8" //DNS1
IPV6_PRIVACY="no" //IPV6隱私

2.2.13、顯示所有網路介面設備的狀態:

nmcli device status
device 可以簡寫為 d、de、dev……

#、status 是 device 的預設項,可以省略不寫。所以,以上命令可簡寫為:
[[email protected] ~]# nmcli d
DEVICE  TYPE      STATE   CONNECTION 
ens192  ethernet  已連接  ens192     
lo      loopback  未托管  --

[[email protected] ~]# nmcli device
DEVICE  TYPE      STATE   CONNECTION 
ens192  ethernet  已連接  ens192     
lo      loopback  未托管  --     


#、顯示所有設備的詳細信息:
nmcli d show
#或
nmcli d sh         # show 不可簡寫為 s,否則與 status 衝突,但可以簡寫為 sh

[[email protected] ~]# nmcli d sh
GENERAL.DEVICE:                         ens192
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:0C:29:5D:B2:19
GENERAL.MTU:                            1500
GENERAL.STATE:                          100(已連接)
GENERAL.CONNECTION:                     ens192
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/2
WIRED-PROPERTIES.CARRIER:               開
IP4.ADDRESS[1]:                         192.168.100.83/24
IP4.GATEWAY:                            192.168.100.1
IP4.ROUTE[1]:                           dst = 0.0.0.0/0, nh = 192.168.100.1, mt = 100
IP4.ROUTE[2]:                           dst = 192.168.100.0/24, nh = 0.0.0.0, mt = 100
IP4.DNS[1]:                             192.168.100.1
IP4.DNS[2]:                             4.2.2.2
IP6.ADDRESS[1]:                         fe80::18b9:6600:f377:2d7b/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 100
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255

GENERAL.DEVICE:                         lo
GENERAL.TYPE:                           loopback
GENERAL.HWADDR:                         00:00:00:00:00:00
GENERAL.MTU:                            65536
GENERAL.STATE:                          10(未托管)
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --
IP4.ADDRESS[1]:                         127.0.0.1/8
IP4.GATEWAY:                            --
IP6.ADDRESS[1]:                         ::1/128
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = ::1/128, nh = ::, mt = 256

2.2.14、顯示某一特定設備的詳細信息:

[[email protected] ~]# nmcli d sh ens192
GENERAL.DEVICE:                         ens192
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:0C:29:5D:B2:19
GENERAL.MTU:                            1500
GENERAL.STATE:                          100(已連接)
GENERAL.CONNECTION:                     ens192
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/2
WIRED-PROPERTIES.CARRIER:               開
IP4.ADDRESS[1]:                         192.168.100.83/24
IP4.GATEWAY:                            192.168.100.1
IP4.ROUTE[1]:                           dst = 0.0.0.0/0, nh = 192.168.100.1, mt = 100
IP4.ROUTE[2]:                           dst = 192.168.100.0/24, nh = 0.0.0.0, mt = 100
IP4.DNS[1]:                             192.168.100.1
IP4.DNS[2]:                             4.2.2.2
IP6.ADDRESS[1]:                         fe80::18b9:6600:f377:2d7b/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 100
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255

2.2.15、連接設備:

nmcli d connect ens192  
#或
nmcli d c ens192 

#、如果 ens192 本來就出於連接狀態,那此命令會重啟 ens192。

2.2.16、斷開設備:

#、斷開設備:
nmcli d disconnect ens33  
#或
nmcli d d ens33  

#、更新設備信息:
nmcli d reapply ens33
#或
nmcli d r ens33

只有在設備處於連接狀態,才可以更新設備。
更新設備相當於重啟連接。

2.2.17、Anolis8網路切換連接

[[email protected]  ~]# nmcli c up ens192
連接已成功激活(D-Bus 活動路徑:/org/freedesktop/NetworkManager/ActiveConnection/3)

2.2.18、Anolis8網路查看IP

[[email protected] ~]# nmcli
ens192: 已連接 到 ens192
        "VMware VMXNET3"
        ethernet (vmxnet3), 00:0C:29:5D:B2:19, 硬體, mtu 1500
        ip4 預設
        inet4 192.168.100.83/24
        route4 0.0.0.0/0
        route4 192.168.100.0/24
        inet6 fe80::18b9:6600:f377:2d7b/64
        route6 fe80::/64
        route6 ff00::/8

lo: 未托管
        "lo"
        loopback (unknown), 00:00:00:00:00:00, 軟體, mtu 65536

DNS configuration:
        servers: 192.168.100.1 4.2.2.2
        interface: ens192

使用 "nmcli device show" 獲取關於已知設備的完整信息,以及 
"nmcli connection show" 獲取活動連接配置集的概述。

完整的用法細節,可參考 nmcli(1) 和 nmcli-examples(7) 手冊頁。

2.2.19、CentOS8網路啟用網卡ensX,例如ens160

nmcli c up ens160

2.2.20、Anolis8網路停止connection

nmcli c down

2.2.21、CentOS8網路刪除connection

nmcli c delete ens160

2.2.22、立即生效connection

nmcli c up ens160
nmcli d reapply ens160
nmcli d connect ens160

2.2.23、關閉網路

nmcli r all off

3、常見的AnolisOS 8網卡配置方式

通過NetworkManager進行AnolisOS 8網卡配置時候,會自動將connection同步到ifcfg配置文件中,這裡特別指出eth和ens的區別,ethX是真實物理網卡,ensX是虛擬網路會話。

手工配置ifcfg,通過NetworkManager來生效
通過NM自帶工具配ip,比如nmcli
手工配置ifcfg,通過傳統network.service來生效

3.1、通過手工配置AnolisOS 8網卡ifcfg的方式

#、這裡推薦使用上述第1種AnolisOS 8網卡配置方法,就是手工配置ifcfg,通過NetworkManager來生效,因為這樣既相容了傳統的ifcfg配置,又能熟悉nmcli。

#、打開配置文件,ifcfg-開頭的,根據實際名稱修改。例如我的機器是ifcfg-ens192
vi /etc/sysconfig/network-scripts/ifcfg-ens192

#、配置參數示例,大家可以根據實際接入的網路進行配置AnolisOS 8網卡,試試吧已經對此配置做了詳細備註。
TYPE="Ethernet" //乙太網,還有其他的如bond,bridge
PROXY_METHOD="none"//預設代理方式:關閉狀態
BROWSER_ONLY="no" //預設只是瀏覽器:否
BOOTPROTO="none" //dhcp 表示動態獲取IP地址, static 表示表態IP,none表示不指定,就是靜態
DEFROUTE="yes" //預設路由:是
IPV4_FAILURE_FATAL="no" //是否開啟IPV4致命錯誤檢測:否
IPV6INIT="yes" //預設IPV6是否自動初始化: 是
IPV6_AUTOCONF="yes" //預設IPV6是否自動配置:是
IPV6_DEFROUTE="yes" //預設IPV6是否預設路由:是
IPV6_FAILURE_FATAL="no" //如果IPv4或IPv6配置失敗,此介面將被禁用,否:如果配置失敗,此介面不會被禁用
IPV6_ADDR_GEN_MODE="stable-privacy" //IPV6地址生成模型
NAME="ens192" //名稱
UUID="51e111fd-ec09-44f5-8163-81d8f8ebc8f4" //唯一ID
DEVICE="ens192" //設備名稱
ONBOOT="yes" //開啟啟動
IPADDR="192.168.100.83" //IP
PREFIX="24" //子網掩碼長度
GATEWAY="192.168.100.1" //網關
DNS1="114.114.114.114" //DNS1
DNS2="8.8.8.8" //DNS1
IPV6_PRIVACY="no" //IPV6隱私

3.2、CentOS8網卡配置後重啟網路

systemctl restart  NetworkManager

3.3、檢測網路狀態

ping www.baidu.com
curl www.baidu.com

4、網路重啟

#、CentOS 8 、Red Hat 8、Anolis 8 、fedora 33/34/35 、Alibaba Cloud Linux 3操作系統,請執行以下操作:

#4.1、執行以下命令,重新載入所有網卡配置。
nmcli c reload

#4.2、執行以下命令,激活網卡。
nmcli d connect eth0

參考文章鏈接:https://www.jianshu.com/p/ed411ebd9cc4

本文來自博客園,作者:kirin(麒麟),轉載請註明原文鏈接:https://www.cnblogs.com/kirin365/p/17843049.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 最近天氣降溫厲害,咱們用Python來分析一下空氣質量如何~ 話不多說,我們直接開始上手。 環境以及模塊 環境使用 Python 3.8 Pycharm nodejs 模塊使用 import requests import execjs import json requests和execjs 都是第 ...
  • Windows Management Instrumentation(WMI)是一種用於管理和監視`Windows`操作系統的框架。它為開發人員、系統管理員和自動化工具提供了一種標準的介面,通過這個介面,可以獲取有關電腦系統硬體、操作系統和應用程式的信息,以及對系統進行管理和控制的能力。WQL 的... ...
  • 在 Go 語言中,panic、recover 和 defer 是用於處理異常情況的關鍵字。它們通常一起使用來實現對程式錯誤的處理和恢復。 1. defer 語句 defer 用於在函數返回之前執行一段代碼。被 defer 修飾的語句或函數會在包含 defer 的函數執行完畢後執行。defer 常用於 ...
  • 建議看看電腦科學速成課,一門很全面的電腦原理入門課程,短短10分鐘可以把大學老師十幾節課講的東西講清楚!整個系列一共41個視頻,B站上有中文字幕版。 每個視頻都是一個特定的主題,例如軟體工程、人工智慧、操作系統等,主題之間都是緊密相連的,比國內很多大學電腦課程強太多! 這門課程通過生動形象的講 ...
  • ✨前言✨ 本片文章,主要在於C#連接MySQL資料庫,由於這之間無法建立直接聯繫,這時候就涉及到了第三方連接工具.NET,以此來建立C#與MySQL資料庫的連接 🍒歡迎點贊 👍 收藏 ⭐留言評論 📝私信必回喲😁 🍒博主將持續更新學習記錄收穫,友友們有任何問題可以在評論區留言 目錄🍊 一, ...
  • SciPy庫的optimize模塊主要用於執行各種優化任務。優化是尋找特定函數的最小值或最大值的過程,通常用於機器學習、數據分析、工程和其他領域。 scipy.optimize提供了多種優化演算法,包括梯度下降法、牛頓法、最小二乘法等,可以解決各種複雜的優化問題。該模塊還包含一些特定的函數,用於解決某 ...
  • .NET8發佈後,Blazor支持四種渲染方式 靜態渲染,這種頁面只可顯示,不提供交互,可用於網頁內容展示 使用Blazor Server托管的通過Server交互方式 使用WebAssembly托管的在瀏覽器端交互方式 使用Auto自動交互方式,最初使用 Blazor Server,併在隨後訪問時 ...
  • AOT介紹 .Net8的本地預編機器碼AOT,它幾乎進行了100%的自舉。微軟為了擺脫C++的鉗制,做了很多努力。也就是代碼幾乎是用C#重寫,包括了虛擬機,GC,記憶體模型等等。而需要C++做的,也就僅僅是引導程式,本篇通過代碼來看下這段至關重要的引導程式的運作模式。 支持功能 SqlSugar OR ...
一周排行
    -Advertisement-
    Play Games
  • 1、預覽地址:http://139.155.137.144:9012 2、qq群:801913255 一、前言 隨著網路的發展,企業對於信息系統數據的保密工作愈發重視,不同身份、角色對於數據的訪問許可權都應該大相徑庭。 列如 1、不同登錄人員對一個數據列表的可見度是不一樣的,如數據列、數據行、數據按鈕 ...
  • 前言 上一篇文章寫瞭如何使用RabbitMQ做個簡單的發送郵件項目,然後評論也是比較多,也是準備去學習一下如何確保RabbitMQ的消息可靠性,但是由於時間原因,先來說說設計模式中的簡單工廠模式吧! 在瞭解簡單工廠模式之前,我們要知道C#是一款面向對象的高級程式語言。它有3大特性,封裝、繼承、多態。 ...
  • Nodify學習 一:介紹與使用 - 可樂_加冰 - 博客園 (cnblogs.com) Nodify學習 二:添加節點 - 可樂_加冰 - 博客園 (cnblogs.com) 介紹 Nodify是一個WPF基於節點的編輯器控制項,其中包含一系列節點、連接和連接器組件,旨在簡化構建基於節點的工具的過程 ...
  • 創建一個webapi項目做測試使用。 創建新控制器,搭建一個基礎框架,包括獲取當天日期、wiki的請求地址等 創建一個Http請求幫助類以及方法,用於獲取指定URL的信息 使用http請求訪問指定url,先運行一下,看看返回的內容。內容如圖右邊所示,實際上是一個Json數據。我們主要解析 大事記 部 ...
  • 最近在不少自媒體上看到有關.NET與C#的資訊與評價,感覺大家對.NET與C#還是不太瞭解,尤其是對2016年6月發佈的跨平臺.NET Core 1.0,更是知之甚少。在考慮一番之後,還是決定寫點東西總結一下,也回顧一下.NET的發展歷史。 首先,你沒看錯,.NET是跨平臺的,可以在Windows、 ...
  • Nodify學習 一:介紹與使用 - 可樂_加冰 - 博客園 (cnblogs.com) Nodify學習 二:添加節點 - 可樂_加冰 - 博客園 (cnblogs.com) 添加節點(nodes) 通過上一篇我們已經創建好了編輯器實例現在我們為編輯器添加一個節點 添加model和viewmode ...
  • 前言 資料庫併發,數據審計和軟刪除一直是數據持久化方面的經典問題。早些時候,這些工作需要手寫複雜的SQL或者通過存儲過程和觸發器實現。手寫複雜SQL對軟體可維護性構成了相當大的挑戰,隨著SQL字數的變多,用到的嵌套和複雜語法增加,可讀性和可維護性的難度是幾何級暴漲。因此如何在實現功能的同時控制這些S ...
  • 類型檢查和轉換:當你需要檢查對象是否為特定類型,並且希望在同一時間內將其轉換為那個類型時,模式匹配提供了一種更簡潔的方式來完成這一任務,避免了使用傳統的as和is操作符後還需要進行額外的null檢查。 複雜條件邏輯:在處理複雜的條件邏輯時,特別是涉及到多個條件和類型的情況下,使用模式匹配可以使代碼更 ...
  • 在日常開發中,我們經常需要和文件打交道,特別是桌面開發,有時候就會需要載入大批量的文件,而且可能還會存在部分文件缺失的情況,那麼如何才能快速的判斷文件是否存在呢?如果處理不當的,且文件數量比較多的時候,可能會造成卡頓等情況,進而影響程式的使用體驗。今天就以一個簡單的小例子,簡述兩種不同的判斷文件是否... ...
  • 前言 資料庫併發,數據審計和軟刪除一直是數據持久化方面的經典問題。早些時候,這些工作需要手寫複雜的SQL或者通過存儲過程和觸發器實現。手寫複雜SQL對軟體可維護性構成了相當大的挑戰,隨著SQL字數的變多,用到的嵌套和複雜語法增加,可讀性和可維護性的難度是幾何級暴漲。因此如何在實現功能的同時控制這些S ...