Uzyskiwanie dostępu do folderów udostępnionych na innych serwerach z poziomu aplikacji ASP.NET Core (IIS, ustawienia puli aplikacji)
Środowisko weryfikacji działania
- Visual Studio
-
- informacji o wersji Visual Studio 2022
- ASP.NET Rdzeń
-
- 6 (Strony Razpr)
- Serwer z systemem Windows
-
- 2022 (ASP.NET podstawowe wymagania systemowe)
- 2019 (serwer wdrażania folderów współdzielonych)
- Usługi IIS
-
- 10.0
Środowisko pracy
Nie testowałem go we wszystkim, ale w większości powinien działać.
- Visual Studio
-
- Wszystko, co może rozwinąć projekt ASP.NET lub ASP.NET Core
- ASP.NET Rdzeń
-
- Dowolna wersja (MVC, Razor Pages, API)
- ASP.NET
-
- Każda wersja jest dopuszczalna
- Serwer z systemem Windows
-
- Windows Server 2008 lub nowszy
- Usługi IIS
-
- 7.0 lub nowszy
Warunek wstępny
- ASP.NET Podstawowe aplikacje są przeznaczone do uruchamiania w usługach IIS. Inne serwery WWW nie będą w stanie zaimplementować treści tych wskazówek
środowisko
Jest on weryfikowany w następującym środowisku.
Cel korzystania z | komputerów PC i serwerów |
---|---|
Windows 11 (lokalny) | Środowisko do tworzenia programów. Nie ma związku z celem tego artykułu |
Test SV2022 | Środowisko, w którym działają usługi IIS i ASP.NET Core. Uzyskaj dostęp do folderu współdzielonego SV2019Test z tego miejsca |
Test SV2019 | Serwery z folderami udostępnionymi |
Ponadto różne ustawienia są następujące.
Nazwa parametru | Wartość |
---|---|
Uzyskaj dostęp do nazwy użytkownika | Współdzielony użytkownik |
Nazwa folderu udostępnionego | Folder współdzielony |
Tworzenie programu do odczytu i zapisu plików z folderu udostępnionego z aplikacji ASP.NET Core
Jako pan/pani pociągnij, po prostu kliknij przycisk,
- Załaduj pliki do folderu udostępnionego i wyświetl je na ekranie
- Zapisywanie nowego pliku w folderze udostępnionym
proces.
Nie utworzyłem jeszcze folderu współdzielonego, więc nie mogę go debugować, ale jest to prosty kod, więc na razie po prostu zrobię program.
ASP.NET projekt podstawowy może być dowolnego typu, ale w tym przypadku używam Razor Pages.
Index.cshtml.cs
i dodaj, co się stanie po kliknięciu przycisku.
Nazwa serwera jest zapisywana bezpośrednio, ale należy ją dobrze dostosować w rzeczywistym działaniu.
W niektórych przypadkach folder udostępniony może być niedostępny, więc jest on ujęty w try-catch.
public class IndexModel : PageModel
{
// 省略
public void OnGet() { }
// ここから追加
public void OnPost()
{
var serverName = "SV2019Test";
try
{
var readFilePath = $@"\\{serverName}\SharedFolder\Input.txt";
var writeFilePath = $@"\\{serverName}\SharedFolder\Output.txt";
// 共有フォルダからファイルを読み込む
var text = System.IO.File.ReadAllText(readFilePath);
// 別ファイルとして共有フォルダに書き込む
System.IO.File.WriteAllText(writeFilePath, text);
// 読み込んだ内容を画面に表示する
ViewData["Message"] = text;
}
catch (Exception ex)
{
ViewData["Message"] = ex;
}
}
// ここまで追加
}
Index.cshtml
ma przycisk i komunikat.
@page
@model IndexModel
@{
ViewData["Title"] = "Home page";
}
<div class="text-center">
<h1 class="display-4">Welcome</h1>
<p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
</div>
@* ここから追加 *@
<form method="post">
<button type="submit">処理実行</button>
</form>
<div>@ViewData["Message"]</div>
@* ここまで追加 *@
Po utworzeniu programu utwórz plik do wdrożenia na serwerze. W takim przypadku użyjemy metody bezpośredniego umieszczenia opublikowanego pliku, ale nie ma znaczenia, której metody użyjesz. Ponadto układ programu nie jest istotą tej wskazówki, dlatego jest on wymieniony w uproszczony sposób.
Dodaj konfigurację publikowania.
Zmień ustawienia.
Ustawienia są zmieniane, jak pokazano na rysunku. Nie jest to również szczególnie związane z celem tego czasu, więc ustaw go zgodnie ze swoim środowiskiem.
Opublikuj program.
Po opublikowaniu programu kliknij link "Lokalizacja docelowa", a otworzy się folder z plikami, które chcesz umieścić.
Budowanie serwera folderów współdzielonych
Tworzenie użytkownika
Normalnie, jeśli serwer jest inny, użytkownik utworzony na każdym serwerze jest wewnętrznie traktowany jako zupełnie inny użytkownik. Tworząc plik z tą samą nazwą użytkownika i hasłem, można pominąć uwierzytelnianie systemu Windows na innym serwerze. Tym razem użyjemy tego, aby uzyskać dostęp do folderu współdzielonego na innym serwerze.
Nawiasem mówiąc, jeśli masz do czynienia z serwerami i kontami w domenie takiej jak Active Directory, możesz skonfigurować oba serwery z tym kontem, co w pewnym stopniu upraszcza konfigurację.
Procedura tworzenia użytkownika nie jest szczegółowo opisana.
SharedUser
W takim przypadku utworzymy go pod nazwą .
Ponieważ ten użytkownik nie obsługuje ekranu ani nie zmienia ustawień, nie można zmienić hasła.
Jeśli pozostawisz ustawienie domyślne, możesz zalogować się za pomocą tego użytkownika za pomocą Pulpitu zdalnego itp., więc usuń go z grupy Users
.
Tworzenie folderu udostępnionego
Nie ma znaczenia, gdzie go utworzysz. Dzieje się tak, ponieważ inne serwery nie dbają o lokalizację folderu fizycznego.
W takim przypadku utworzymy folder o nazwie bezpośrednio pod SharedFolder
dyskiem C i udostępnimy go.
Otwórz właściwości i skonfiguruj ustawienia udostępniania.
Nazwa folderu udostępnionego powinna być następująca SharedFolder
. Ta nazwa będzie widoczna dla innych serwerów.
Dodaj SharedUser
uprawnienia.
Everyone
Usuń istniejący plik .
Potwierdź za pomocą uprawnienia "Zmień".
Ponieważ dodaliśmy tylko uprawnienia, do których można uzyskać dostęp z zewnątrz, ustawimy je wewnętrznie SharedUser
, aby mogły działać w tym folderze.
Potwierdź za pomocą uprawnienia "Zmień".
Utwórz plik, aby sprawdzić operację.
Nie ma nic złego w tym, że możesz uzyskać dostęp do Eksploratora z \\<サーバー名>\
innego komputera, zalogowaćSharedUser
się za pomocą i wyświetlić plik.
Budowanie serwera aplikacji
Instalowanie usług IIS
Na razie zainstaluj go domyślnie z menedżera serwera. Nie będę wchodził w szczegóły procedury.
Nie są wymagane żadne dodatkowe funkcje.
Obecnie nie są wymagane żadne dodatkowe usługi usług IIS.
Instalacja pakietu hostingowego ASP.NET Core Runtime
Ponieważ używamy ASP.NET Core 6, musimy odpowiednio zainstalować środowisko uruchomieniowe. Pobierz go z następującego adresu URL:
Aby uruchomić ASP.NET Core w usługach IIS, potrzebujesz czegoś, co nazywa się "Hosting Bundle". Pobierz "Hosting Bundle" z ASP.NET Core Runtime.
Po pobraniu uruchom go na serwerze.
Postępuj zgodnie z instrukcjami kreatora, aby go zainstalować.
Tworzenie i wdrażanie aplikacji internetowych
W narzędziach administracyjnych systemu Windows otwórz Menedżera Internetowych usług informacyjnych (IIS).
Możesz użyć "Domyślnej witryny internetowej" bez zmian, ale tym razem utworzymy nową witrynę. Domyślna witryna sieci Web jest uruchamiana automatycznie, więc należy ją zatrzymać.
Utwórz nową witrynę sieci Web.
Tym razem nazwa witryny to SharedFolderAccess
, ale to nie ma znaczenia.
Pula aplikacji jest generowana automatycznie dla nowej lokacji.
Utwórz i określ wybrany folder, w którym chcesz umieścić program.
Port 80 jest oznaczony jako "Domyślna witryna internetowa" i zobaczysz ostrzeżenie, ale możesz je zignorować, jeśli już nie działa.
Został stworzony.
Otwórz folder określony w witrynie sieci Web w Eksploratorze Windows, a następnie skopiuj i umieść wszystkie opublikowane programy w takiej postaci, w jakiej są.
Otwórz stronę za pomocą łącza usług IIS i sprawdź, czy pojawi się ekran. Możesz najpierw otworzyć przeglądarkę internetową i bezpośrednio wprowadzić adres URL.
Nawiasem mówiąc, nawet jeśli klikniesz przycisk w tym stanie, pojawi się błąd, ponieważ ustawienie uprawnień nie zostało jeszcze zakończone.
Tworzenie użytkownika
Utwórz tego samego użytkownika SharedUser
na serwerze aplikacji, co na serwerze folderów współdzielonych. Upewnij się, że Twoje hasła również się zgadzają. Kroki są dokładnie takie same.
Zmienianie uprawnień puli aplikacji
Dostęp programów sieci Web jest określany przez pulę aplikacji.
Domyślnie ma tylko ApplicationPoolIdentity
uprawnienia do uruchamiania aplikacji internetowych.
Zmieniając to uprawnienie na SharedUser
, program internetowy może działać z ustawionymi uprawnieniami użytkownika.
Dzięki temu programy SharedUser
internetowe mogą uzyskiwać dostęp do folderów współdzielonych w programie .
Po otwarciu Menedżera usług IIS wybierz pozycję Pule aplikacji.
Podczas tworzenia strony internetowej dodawany jest automatycznie SharedFolderAccess
, więc kliknij go prawym przyciskiem myszy i wybierz "Zaawansowane".
W modelu procesu znajduje się "ID", więc kliknij przycisk po prawej stronie.
Wybierz "Konto niestandardowe" i kliknij przycisk "Ustawienia".
SharedUser
Wprowadź i potwierdź swoją nazwę użytkownika i hasło.
Potwierdzenie działania
Wejdź na stronę internetową i kliknij przycisk. Jeśli zawartość pliku tekstowego zostanie wyświetlona, oznacza to, że jest to powodzenie.
Upewnij się, że w folderze udostępnionym znajduje się również nowy plik.