Jeg har en Raspberry Pi 3B (Raspberry Pi 3B Arm-arkitektur 32-bit) hjemme, og jeg har spist støv hjemme fordi .NET Core-programmer kan være plattformuavhengige, så jeg skal skrive en nettside for å distribuere på Raspberry Pi. Hjemmebredbåndet har en offentlig IP-adresse, men IP-adressen vil endre seg hver gang ruteren startes på nytt, og den gratis DDNS-en til ASUS-ruteren er ikke særlig enkel å bruke (hjemme-IP-en har endret seg, og domenenavnoppløsningen har ikke trådt i kraft i tide). Jeg har en DELL-stasjonær PC og en DELL EMC-server hjemme, så gjør deg klar til å skrive en DDNS-tjeneste og et Wake-on-the-Internet-verktøy med ASP.NET Core.
Med DDNS kan duFå IP-adressen til Internett hjemme i tide, ved bruk av Wake-on-Network-funksjonen er muligVekke min DELL stasjonære datamaskin, som er praktisk for å konsultere informasjon hjemme.
Nettsteder skrevet med ASP.NET Core 6 distribueres på Raspberry PiDen har gått jevnt i mer enn 3 måneder, uten problemer.
Installer AspNetCore-runtime
Først må Raspberry Pi installeres med Raspberry Pi OS-systemet, og veiledningen er som følger:
Installer deretter AspNetCore Runtimes oppå Raspberry Pi, logg inn på Raspberry Pi-verten med SSH, og bruk detsudo -iBytt til root og lag en /usr/dotnet-mappe med følgende kommando:
Last aspnetcore-runtime-6.0.1-linux-arm.tar.gz ned og pakk den ut med følgende kommando:
For å lage en myk lenke er kommandoen som følger:
På dette tidspunktet installeres kjøremiljøet som kreves av ASP.NET Core-nettstedet, og den installerte kjøretiden sjekkes, som vist i figuren nedenfor:
DDNS Dynamisk Domenenavntjeneste
Kall DNSPod-grensesnittet for å implementere DDNS dynamisk domenenavntjeneste, grensesnittdokument:Innloggingen med hyperkoblingen er synlig.
Opprett et nytt MVC-prosjekt ASP.NET Core 6 ved bruk av VS 2022, og lag en ny DNSPodOptions.cs-fil for å konfigurere parameterne som kreves for invocation-grensesnittet, som følger:
appsettings.json Legg til følgende konfigurasjon:
Endre Program.cs-filen for å mappe konfigurasjonsinformasjonen til DNSPodOptions-klassen, koden er som følger:
Opprett en ny DDNSWorker.cs-fil, lag en bakgrunnstjeneste, hent en IP-adresse én gang i minuttet, og kall DNSPod-grensesnittet for å oppdatere domenenavnsoppløsningen hvis IP-adressen endres. (Merk:Hvis mer enn 5 forespørsler om å endre poster uten endringer sendes inn innen 1 time, vil postene bli låst av systemet i 1 time og vil ikke få lov til å endres igjen。 For eksempel er den opprinnelige postverdien allerede 1.1.1.1, og den nye forespørselen krever også at den endres til 1.1.1.1. )
Koden er som følger:
Endre Program.cs-filen og registrer backend-tjenesten med følgende kode:
Den komplette Program.cs-koden er som følger:
Debuggeren kan kalle DNSPod-grensesnittet normalt, som følger:
Wake On LAN
Wake-on-LAN forkortes som WOL eller WoL, som for det meste oversettes til kinesisk som «online oppvåkning» og «fjern oppvåkning»-teknologi. WOL er en teknologi, og det er også spesifikasjonen for denne teknologien, og dens effekt er å la en datamaskin som har gått inn i en dvale- eller avstengningstilstand gi ordre til den via den andre enden av det lokale nettverket (for det meste Ethernet), slik at den våkner fra dvale, går tilbake til driftstilstand, eller bytter fra avstengningstilstand til oppstartstilstand. I tillegg inkluderer WOL-relaterte teknologier også fjernkontrollmekanismer som fjernavstengning og fjernomstart.
Endre HomeController-kontrolleren og legg til Wake-on-Network-grensesnittet, koden er som følger:
Rediger Index.cshtml-siden, legg til MAC-adresse-inndataboksen og knappen, og bruk Ajax for å kalle grensesnittet, koden er som følger:
Start prosjektet som vist nedenfor:
Utplassert på Raspberry Pi
Ved å bruke VS 2022 for å lansere et prosjekt, last du opp utgivelsespakken til Raspberry Pi sin /home/pi/wol-mappe, som vist nedenfor:
Opprett en ny nbddns.service-fil under mappen /etc/systemd/system og registrer prosjektet som en Linux-tjeneste, som følger:
Start nbddns-tjenesten og sett oppstarten til å starte auto-start med følgende kommando:
Se tjenestestatusen som vist i følgende figur:
Til slutt, i ruterinnstillingenePortkartlegging, og deretter tilgang via domenenavnet og den kartlagte extranet-porten, telefonen minBruk 4G-nettverkdirekteDu kan få tilgang til ASP.NET Core-appene som er distribuert oppå Raspberry Pi, som vist i figuren nedenfor:
(Slutt)
|