Přístup ke sdíleným složkám na jiných serverech z aplikací ASP.NET Core (IIS, nastavení fondu aplikací)

Stránky aktualizovány :
Datum vytvoření stránky :

Prostředí pro ověřování provozu

Visual Studio
  • Visual Studio 2022
ASP.NET jádro
  • 6 (Razpr stránky)
Windows Server
  • 2022 (ASP.NET Základní systémové požadavky)
  • 2019 (server pro nasazení sdílených složek)
Služba IIS
  • 10.0

Provozní prostředí

Netestoval jsem to ve všem, ale z větší části by to mělo fungovat.

Visual Studio
  • Cokoli, co může vytvořit ASP.NET nebo ASP.NET Core projekt
ASP.NET jádro
  • Libovolná verze (MVC, Razor Pages, API)
ASP.NET
  • Jakákoli verze je přijatelná
Windows Server
  • Windows Server 2008 nebo novější
Služba IIS
  • 7.0 nebo novější

předpoklad

  • Aplikace ASP.NET Core jsou určené ke spuštění ve službě IIS. Jiné webové servery nebudou moci implementovat obsah těchto tipů

životní prostředí

Ověřuje se v následujícím prostředí.

Účel použití počítačů a serverů
Windows 11 (místní) Prostředí pro vývoj programů. Irelevantní pro účel tohoto článku
Test SV2022 Prostředí, ve kterém běží služba IIS a ASP.NET Core. Přístup ke sdílené složce SV2019Test odtud
SV2019Test Servery se sdílenými složkami

Kromě toho jsou různá nastavení následující.

Název parametru Hodnota
Přístupové uživatelské jméno Sdílený uživatel
Název sdílené složky Sdílená_složka

Vytvoření programu pro čtení a zápis souborů ze sdílené složky z aplikace ASP.NET Core

Jako tah pan/paní jednoduše klikněte na tlačítko,

  • Načtení souborů ve sdílené složce a jejich zobrazení na obrazovce
  • Zápis nového souboru do sdílené složky

proces.

Sdílenou složku jsem ještě nevytvořil, takže ji nemůžu ladit, ale je to jednoduchý kód, takže zatím udělám jen program.

ASP.NET Core projekt může být libovolného typu, ale v tomto případě používám Razor Pages.

Index.cshtml.cs a přidejte, co se stane, když na tlačítko kliknete. Název serveru je napsán přímo, ale upravte jej prosím dobře ve skutečném provozu. V některých případech nemusí být sdílená složka přístupná, takže je uzavřena v 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 má tlačítko a zprávu.

@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 vytvoření programu vytvořte soubor, který chcete nasadit na server. V tomto případě použijeme metodu přímého umístění publikovaného souboru, ale nezáleží na tom, jakou metodu použijete. Uspořádání programu navíc není podstatou tohoto tipu, proto je uveden zjednodušeně.

Přidejte konfiguraci publikování.

Změňte nastavení.

Nastavení se změní, jak je znázorněno na obrázku. To také nijak zvlášť nesouvisí s účelem této doby, proto ji prosím nastavte podle svého prostředí.

Publikujte program.

Po publikování programu klikněte na odkaz "Cílové umístění" a otevře se složka se soubory, které chcete umístit.

Vytvoření serveru sdílených složek

Vytvoření uživatele

Za normálních okolností, pokud je server odlišný, je uživatel vytvořený na každém serveru interně považován za zcela jiného uživatele. Vytvořením souboru se stejným uživatelským jménem a heslem můžete přeskočit ověřování systému Windows na jiný server. Tentokrát to použijeme pro přístup ke sdílené složce na jiném serveru.

Mimochodem, pokud pracujete se servery a účty v doméně, jako je Active Directory, můžete nastavit oba servery s tímto účtem, což do určité míry zjednodušuje konfiguraci.

Postup vytvoření uživatele není podrobně popsán.

SharedUser V tomto případě jej vytvoříme s názvem . Vzhledem k tomu, že tento uživatel neovládá obrazovku ani nemění nastavení, nelze heslo změnit.

Pokud ponecháte výchozí nastavení, můžete se s tímto uživatelem přihlásit pomocí Vzdálené plochy apod., proto je prosím odeberte ze skupiny Users .

Vytvoření sdílené složky

Nezáleží na tom, kde jej vytvoříte. Je to proto, že ostatní servery se nestarají o umístění fyzické složky. V tomto případě vytvoříme složku pojmenovanou přímo pod SharedFolder jednotkou C a budeme ji sdílet.

Otevřete vlastnosti a nakonfigurujte nastavení sdílení.

Název sdílené složky by měl SharedFolder být . Tento název bude viditelný pro ostatní servery. Přidejte SharedUser oprávnění.

Everyone Odstraňte existující soubor .

Potvrďte pomocí oprávnění "Změnit".

Vzhledem k tomu, že jsme přidali pouze oprávnění, ke kterým lze přistupovat zvenčí, nastavíme je interně SharedUser tak, aby mohly fungovat v této složce.

Potvrďte pomocí oprávnění "Změnit".

Vytvořte soubor pro kontrolu operace.

Je v pořádku, pokud máte přístup v Průzkumníku z \\<サーバー名>\ jiného počítače, přihlaste seSharedUser pomocí a zobrazte soubor.

Vytvoření aplikačního serveru

Instalace služby IIS

Prozatím jej nainstalujte ve výchozím nastavení ze správce serveru. Nebudu zabíhat do podrobností postupu.

Nejsou vyžadovány žádné další funkce.

V tuto chvíli nejsou vyžadovány žádné další služby služby IIS.

Instalace sady hostování modulu runtime ASP.NET Core

Vzhledem k tomu, že používáme ASP.NET Core 6, musíme modul runtime odpovídajícím způsobem nainstalovat. Stáhněte si jej z následující adresy URL:

Aby bylo možné spustit ASP.NET Core ve službě IIS, potřebujete něco, co se nazývá "Hosting Bundle". Stáhněte si "Hosting Bundle" z modulu runtime ASP.NET Core.

Po stažení jej spusťte na serveru.

Postupujte podle pokynů průvodce a nainstalujte jej.

Vytváření a nasazování webových aplikací

V Nástrojích pro správu systému Windows otevřete Správce Internetové informační služby (IIS).

Můžete použít "Výchozí web" tak, jak je, ale tentokrát vytvoříme nový web. Výchozí webový server se spustí automaticky, proto jej ukončete.

Vytvořte nový web.

Tentokrát je SharedFolderAccess název webu , ale na tom nezáleží.

Fond aplikací je automaticky generován pro nový web.

Vytvořte a určete složku podle svého výběru, do které chcete program umístit.

Port 80 je označen jako "Výchozí webový server" a zobrazí se varování, ale pokud je již mimo provoz, můžete jej ignorovat.

Byla vytvořena.

Otevřete složku určenou na webu v Průzkumníku Windows a zkopírujte a umístěte všechny publikované programy tak, jak jsou.

Otevřete stránku z odkazu IIS a podívejte se, zda se zobrazí obrazovka. Nejprve můžete otevřít webový prohlížeč a zadat adresu URL přímo.

Mimochodem, i když kliknete na tlačítko v tomto stavu, zobrazí se chyba, protože nastavení oprávnění ještě nebylo dokončeno.

Vytvoření uživatele

Na aplikačním serveru vytvořte stejného uživatele SharedUser jako na serveru sdílených složek. Ujistěte se, že se shodují i vaše hesla. Kroky jsou úplně stejné.

Změna oprávnění fondu aplikací

Přístup webových programů je určen fondem aplikací. Ve výchozím nastavení má pouze ApplicationPoolIdentity oprávnění ke spouštění webových aplikací.

Změníte-li toto oprávnění na SharedUser , může webový program pracovat s oprávněními uživatele, kterého jste nastavili. To umožňuje webovým programům SharedUser přístup ke sdíleným složkám v programu .

Při spuštění Správce služby IIS vyberte možnost Fondy aplikací.

Při vytváření webu se automaticky přidá SharedFolderAccess , takže na něj klikněte pravým tlačítkem a vyberte "Upřesnit".

V procesním modelu je "ID", takže klikněte na tlačítko vpravo.

Vyberte "Vlastní účet" a klikněte na tlačítko "Nastavení".

SharedUser Zadejte a potvrďte své uživatelské jméno a heslo.

Potvrzení o provozu

Přejděte na webovou stránku a klikněte na tlačítko. Pokud se zobrazí obsah textového souboru, je to úspěšné.

Ujistěte se, že máte ve sdílené složce také nový soubor.