Přístup ke sdíleným složkám na jiných serverech z aplikací ASP.NET Core (IIS, nastavení fondu aplikací)
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.