Uzyskiwanie dostępu do folderów udostępnionych na innych serwerach z poziomu aplikacji ASP.NET Core (IIS, ustawienia puli aplikacji)

Strona zaktualizowana :
Data utworzenia strony :

Ś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.