Adgang til delte mapper på andre servere fra ASP.NET Core-programmer (IIS, indstillinger for programgruppe)

Side opdateret :
Dato for oprettelse af side :

Miljø til driftsbekræftelse

Visual Studio
  • Visual Studio 2022
ASP.NET kerne
  • 6 (Razpr sider)
Windows Server
  • 2022 (ASP.NET Core Systemkrav)
  • 2019 (Implementeringsserver til delt mappe)
IIS
  • 10.0

Driftsmiljø

Jeg har ikke testet det i alt, men det burde fungere for det meste.

Visual Studio
  • Alt, hvad der kan udvikle et ASP.NET eller ASP.NET Core-projekt
ASP.NET kerne
  • Enhver version (MVC, Razor Pages, API)
ASP.NET
  • Enhver version er acceptabel
Windows Server
  • Windows Server 2008 eller nyere
IIS
  • 7.0 eller nyere

forudsætning

  • ASP.NET Core-programmer er beregnet til at køre på IIS. Andre webservere vil ikke være i stand til at implementere indholdet af disse tip

miljø

Det er verificeret i følgende miljø.

Formål med brug af pc'er og servere
Windows 11 (lokalt) Et miljø til udvikling af programmer. Irrelevant for formålet med denne artikel
SV2022Test Et miljø, der kører IIS og ASP.NET Core. Få adgang til den delte mappe SV2019Test herfra
SV2019Test Servere med delte mapper

Derudover er de forskellige indstillinger som følger.

Værdi for parameternavn
Få adgang til brugernavn Deltbruger
Navn på delt mappe Deltmappe

Opret et program til at læse og skrive filer fra en delt mappe fra et ASP.NET Core-program

Som en Mr. / Ms. pull, skal du blot klikke på knappen,

  • Indlæs filer i en delt mappe, og vis dem på skærmen
  • Skriv en ny fil til en delt mappe

proces.

Jeg har ikke oprettet en delt mappe endnu, så jeg kan ikke fejlfinde den, men det er simpel kode, så jeg laver bare et program indtil videre.

ASP.NET Core-projekt kan være enhver type, men i dette tilfælde bruger jeg Razor Pages.

Index.cshtml.cs og tilføje, hvad der sker, når der klikkes på knappen. Servernavnet skrives direkte, men juster det godt i den faktiske drift. I nogle tilfælde er den delte mappe muligvis ikke tilgængelig, så den er omsluttet af en prøvefangst.

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 har en knap og en besked.

@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>
@* ここまで追加 *@

Når du har oprettet programmet, skal du oprette en fil, der skal implementeres på serveren. I dette tilfælde bruger vi metoden til at placere den offentliggjorte fil direkte, men det betyder ikke noget, hvilken metode du bruger. Derudover er arrangementet af programmet ikke essensen af dette tip, så det er opført på en forenklet måde.

Tilføj en udgivelseskonfiguration.

Skift indstillingerne.

Indstillingerne ændres som vist i figuren. Dette er heller ikke særlig relateret til formålet med denne tid, så indstil det i henhold til dit miljø.

Udgiv programmet.

Når du har offentliggjort programmet, skal du klikke på linket "Målplacering", og mappen med de filer, du vil placere, åbnes.

Opbygning af en delt mappeserver

Opret en bruger

Normalt, hvis serveren er anderledes, behandles brugeren, der oprettes på hver server, internt som en helt anden bruger. Ved at oprette en fil med samme brugernavn og adgangskode kan du springe Windows-godkendelse over til en anden server. Denne gang bruger vi dette til at få adgang til den delte mappe på en anden server.

Forresten, hvis du har at gøre med servere og konti i et domæne som Active Directory, kan du konfigurere begge servere med den konto, hvilket forenkler konfigurationen til en vis grad.

Proceduren for oprettelse af en bruger er ikke beskrevet detaljeret.

SharedUser I dette tilfælde opretter vi det med navnet . Da denne bruger ikke betjener skærmen eller ændrer indstillingerne, kan adgangskoden ikke ændres.

Hvis du forlader standard, kan du logge ind med denne bruger med Remote Desktop osv., Så fjern venligst fra gruppen Users .

Oprettelse af en delt mappe

Det betyder ikke noget, hvor du opretter det. Dette skyldes, at andre servere er ligeglade med placeringen af den fysiske mappe. I dette tilfælde opretter vi en mappe navngivet direkte under SharedFolder C-drevet og deler den.

Åbn egenskaberne, og konfigurer delingsindstillingerne.

Navnet på den delte mappe skal SharedFolder være . Dette navn vil være synligt for andre servere. Tilføj SharedUser tilladelserne.

Everyone Slet den eksisterende .

Bekræft med tilladelsen "Skift".

Da vi kun har tilføjet tilladelser, der kan tilgås udefra, indstiller vi det internt SharedUser , så det kan fungere i denne mappe.

Bekræft med tilladelsen "Skift".

Opret en fil for at kontrollere handlingen.

Det er OK, hvis du kan få adgang til Explorer fra \\<サーバー名>\ en anden pc, loggeSharedUser ind med og se filen.

Opbygning af en applikationsserver

Installation af IIS

For øjeblikket skal du installere det som standard fra serveradministratoren. Jeg vil ikke gå i detaljer med proceduren.

Der kræves ingen yderligere funktioner.

Der kræves ingen yderligere IIS-tjenester på nuværende tidspunkt.

ASP.NET Core Runtime Hosting Bundle Installation

Da vi bruger ASP.NET Core 6, er vi nødt til at installere runtime i overensstemmelse hermed. Download det fra følgende URL:

For at køre ASP.NET Core i IIS har du brug for noget, der hedder "Hosting Bundle". Download "Hosting Bundle" fra ASP.NET Core Runtime.

Når den er downloadet, skal du køre den på serveren.

Følg guiden for at installere den.

Oprettelse og implementering af webapplikationer

Åbn Internet Information Services (IIS) Manager fra Windows Administration.

Du kan bruge "Standardwebsted", som det er, men denne gang opretter vi et nyt websted. Standardwebstedet startes automatisk, så stop det.

Opret et nyt websted.

Denne gang er SharedFolderAccess webstedets navn , men det betyder ikke noget.

Programgruppen genereres automatisk for det nye websted.

Opret og angiv en mappe efter eget valg, hvor du vil placere programmet.

Port 80 er mærket "Standardwebsted", og du vil se en advarsel, men du kan ignorere den, hvis den allerede er nede.

Det er blevet oprettet.

Åbn den mappe, der er angivet på webstedet i Windows Stifinder, og kopier og placer alle de udgivne programmer, som de er.

Åbn siden fra IIS-linket, og se, om skærmen vises. Du kan åbne en webbrowser først og indtaste URL'en direkte.

Forresten, selvom du klikker på knappen i denne tilstand, får du en fejl, fordi tilladelsesindstillingen endnu ikke er afsluttet.

Opret en bruger

Opret den samme bruger SharedUser på programserveren som på serveren til delt mappe. Sørg for, at dine adgangskoder også stemmer overens. Trinene er nøjagtigt de samme.

Ændring af tilladelser for programgrupper

Adgang via webprogrammer bestemmes af applikationsgruppen. Som standard har den kun ApplicationPoolIdentity privilegier til at køre webapplikationer.

Ved at ændre dette privilegium til SharedUser kan webprogrammet fungere med rettighederne for den bruger, du har angivet. Dette gør det muligt for webprogrammer SharedUser at få adgang til delte mapper i .

Når du åbner IIS Manager, skal du vælge Programgrupper.

Der tilføjes SharedFolderAccess automatisk, når du opretter et websted, så højreklik på det og vælg "Avanceret".

Der er et "ID" i procesmodellen, så klik på knappen til højre.

Vælg "Brugerdefineret konto", og klik på knappen "Indstillinger".

SharedUser Indtast og bekræft dit brugernavn og din adgangskode.

Bekræftelse af operationen

Gå til websiden og klik på knappen. Hvis indholdet af tekstfilen vises, lykkes det.

Sørg for, at du også har en ny fil i den delte mappe.