Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 14475|Odpowiedź: 4

[Źródło] [Praktyczna obsługa] ASP.NET Core 6 wdrożony na ARM Raspberry Pi do implementacji DDNS i Wake-on-Network

[Skopiuj link]
Opublikowano 09.03.2022 22:36:53 | | | |
Mam w domu Raspberry Pi 3B (Raspberry Pi 3B Arm architecture 32-bit) i ostatnio się kurzę w domu, ponieważ programy .NET Core mogą być wieloplatformowe, więc zamierzam napisać stronę internetową do wdrożenia na Raspberry Pi. Domowy internet ma publiczny adres IP, ale adres IP zmienia się za każdym razem, gdy router jest restartowany, a darmowy DDNS w routerze ASUS nie jest łatwy w użyciu (domowy adres IP się zmienił, a rozwiązywanie nazw domen nie zadziałało na czas). Mam w domu desktopowy DELL i serwer DELL EMC, więc przygotuj się na napisanie usługi DDNS i narzędzia Wake-on-the-Internet z ASP.NET Core.

Dzięki DDNS możeszUzyskaj adres IP Internetu w domu na czas, użycie funkcji Wake-on-Network jest możliweObudź mój komputer stacjonarny DELL, co jest wygodne do konsultowania informacji w domu.

Strony napisane przy użyciu ASP.NET Core 6 są wdrażane na Raspberry PiDziała nieprzerwanie od ponad 3 miesięcy, bez żadnych problemów.



Zainstaluj runtime AspNetCore

Najpierw Raspberry Pi musi być zainstalowane z systemem Raspberry Pi OS, a samouczek wygląda następująco:

Raspberry Pi 3B (Raspberry Pi 3B) jest zainstalowany z systemem Raspberry Pi OS
https://www.itsvse.com/thread-10052-1-1.html

Następnie zainstaluj AspNetCore Runtime na Raspberry Pi, zaloguj się na hosta Raspberry Pi przez SSH i korzystaj z niegosudo -iPrzełącz się na root i utwórz folder /usr/dotnet za pomocą następującego polecenia:

Pobierz aspnetcore-runtime-6.0.1-linux-arm.tar.gz i rozpakuj za pomocą następującego polecenia:

Aby utworzyć miękkie link, polecenie jest następujące:

W tym momencie instalowane jest środowisko uruchomieniowe wymagane przez ASP.NET stronę Core i sprawdzane jest zainstalowane runtime, jak pokazano na poniższym rysunku:



DDNS Dynamic Domain Name Service

Wywołaj interfejs DNSPod, aby zaimplementować dynamiczną usługę nazw domen DDNS, dokument interfejsu:Logowanie do linku jest widoczne.

Utwórz nowy projekt MVC ASP.NET Core 6 używając VS 2022, stwórz nowy plik DNSPodOptions.cs do skonfigurowania parametrów wymaganych dla interfejsu wywołania, w następujący sposób:

appsettings.json Dodaj następującą konfigurację:

Zmodyfikuj plik Program.cs, aby odwzorować informacje konfiguracyjne na klasę DNSPodOptions, a kod wygląda następująco:

Utwórz nowy plik DDNSWorker.cs, stwórz usługę w tle, uzyskuj adres IP raz na minutę i wywołaj interfejs DNSPPod, aby zaktualizować rozdzielczość nazw domen, jeśli adres IP się zmieni. (Uwaga:Jeśli w ciągu 1 godziny zostanie złożonych więcej niż 5 wniosków o modyfikację rekordów bez żadnych zmian, rekordy zostaną zablokowane przez system na 1 godzinę i nie będą już dozwolone do ponownej modyfikacji。 Na przykład oryginalna wartość rekordu to już 1.1.1.1, a nowe żądanie wymaga jej zmiany na 1.1.1.1. )

Kod jest następujący:

Zmodyfikuj plik Program.cs i zarejestruj usługę backendową za pomocą następującego kodu:

Pełny kod Program.cs przedstawia się następująco:


Debugger może normalnie wywołać interfejs DNSPOD, w następujący sposób:


Wake On LAN

Wake-on-LAN jest skracane do WOL lub WoL, co w języku chińskim najczęściej oznacza "online wake-up" i "zdalne budzenie". WOL to technologia, a także specyfikacja tej technologii, a jej efekt polega na umożliwieniu komputerowi, który wszedł w stan uśpioności lub wyłączenia, wydawanie mu poleceń przez drugi koniec sieci lokalnej (głównie Ethernet), tak aby obudził się z hibernacji, wrócił do stanu operacyjnego lub przeszedł ze stanu wyłączenia na stan. Ponadto technologie związane z WOL obejmują także mechanizmy zdalnego sterowania, takie jak zdalne wyłączanie i zdalne ponowne uruchomienie.

Zmodyfikuj kontroler HomeController i dodaj interfejs Wake-on-Network – kod wygląda następująco:


Edytuj stronę Index.cshtml, dodaj pole wejściowe adresu MAC i przycisk, a następnie użyj Ajaxa do wywołania interfejsu, kod wygląda następująco:

Rozpocznij projekt zgodnie z poniższą ilustracją:



Zainstalowany na Raspberry Pi

Korzystając z VS 2022, aby wydać projekt, prześlij pakiet do folderu /home/pi/wol Raspberry Pi, jak pokazano poniżej:




Utwórz nowy plik nbddns.service w folderze /etc/systemd/system i zarejestruj projekt jako usługę Linuksa, w następujący sposób:

Uruchom usługę nbddns i ustaw uruchamianie tak, aby uruchamiał się automatycznie za pomocą następującego polecenia:

Zobacz status usługi, jak pokazano na poniższym rysunku:



Na koniec, w ustawieniach routeraMapowanie portów, a potem uzyskać dostęp przez nazwę domeny i zmapowany port extranet, mój telefonKorzystanie z sieci 4GbezpośredniMożesz uzyskać dostęp do ASP.NET aplikacji Core wdrożonych na Raspberry Pi, jak pokazano na poniższym rysunku:



(Koniec)





Poprzedni:ASP.NET Core (XI) trasa końcowa dodaje oprogramowanie pośrednicze do wyświetlania wszystkich usług DI
Następny:Linux ssh: polecenie nie znaleziono
Opublikowano 10.03.2022 11:16:19 |
Widać, że zjedzono dużo popiołu
Opublikowano 12.03.2022 15:17:50 |
Przyjdź i ucz się znowu
 Ziemianin| Opublikowano 23.09.2023 09:25:26 |
Linux systemd service manager wyjaśniony szczegółowo
https://www.itsvse.com/thread-10178-1-1.html
 Ziemianin| Opublikowano 18.06.2024 13:06:36 |
ASP.NET Core (dziewiętnaście) wykorzystuje BackgroundService do wykonywania zadań w tle
https://www.itsvse.com/thread-10591-1-1.html
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com