Adgang til delte mapper på andre servere fra ASP.NET Core-programmer (IIS, indstillinger for programgruppe)
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.