Accesarea folderelor partajate de pe alte servere din aplicațiile ASP.NET Core (IIS, setările rezervorului de aplicații)

Pagina actualizată :
Data creării paginii :

Mediul de verificare a funcționării

Visual Studio
  • Visual Studio 2022
ASP.NET Nucleul
  • 6 (Razpr Pagini)
Windows Server
  • 2022 (ASP.NET cerințe de bază ale sistemului)
  • 2019 (Server de implementare foldere partajate)
IIS
  • 10.0

Mediu de operare

Nu l-am testat în toate, dar ar trebui să funcționeze în cea mai mare parte.

Visual Studio
  • Orice lucru care poate dezvolta un proiect ASP.NET sau ASP.NET Core
ASP.NET Nucleul
  • Orice versiune (MVC, Razor Pages, API)
ASP.NET
  • Orice versiune este acceptabilă
Windows Server
  • Windows Server 2008 sau o versiune ulterioară
IIS
  • 7.0 sau o versiune ulterioară

Condiție prealabilă

  • ASP.NET aplicații de bază sunt destinate să se execute pe IIS. Alte servere web nu vor putea implementa conținutul acestor sfaturi

mediu

Se verifică în următorul mediu.

Scopul utilizării PC-urilor și serverelor
Windows 11 (local) Un mediu pentru dezvoltarea programelor. Irelevant pentru scopul acestui articol
SV2022Test Un mediu care execută IIS și ASP.NET Core. Accesați folderul partajat SV2019Test de aici
SV2019Test Servere cu foldere partajate

În plus, diferitele setări sunt după cum urmează.

Valoarea numelui parametrului
Nume utilizator Access Utilizator partajat
Nume folder partajat SharedFolder

Crearea unui program pentru citirea și scrierea fișierelor dintr-un folder partajat dintr-o aplicație ASP.NET Core

Ca o tragere domn / doamnă, pur și simplu faceți clic pe butonul,

  • Încărcați fișierele într-un dosar partajat și afișați-le pe ecran
  • Scrierea unui fișier nou într-un dosar partajat

proces.

Nu am creat încă un folder partajat, așa că nu îl pot depana , dar este un cod simplu, așa că voi face doar un program pentru moment.

Proiectul ASP.NET Core poate fi de orice tip, dar în acest caz, folosesc Razor Pages.

Index.cshtml.cs și adăugați ce se întâmplă atunci când se face clic pe buton. Numele serverului este scris direct, dar vă rugăm să îl ajustați bine în funcționarea reală. În unele cazuri, este posibil ca folderul partajat să nu fie accesibil, deci este inclus într-o captură de încercare.

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 are un buton și un mesaj.

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

După ce ați creat programul, creați un fișier pentru a-l implementa pe server. În acest caz, vom folosi metoda de plasare directă a fișierului publicat, dar nu contează ce metodă utilizați. În plus, aranjamentul programului nu este esența acestui sfat, deci este listat într-o manieră simplificată.

Adăugați o configurație de publicare.

Modificați setările.

Setările sunt modificate așa cum se arată în figură. De asemenea, acest lucru nu este legat în mod special de scopul acestui timp, așa că vă rugăm să îl setați în funcție de mediul dvs.

Publicați programul.

După publicarea programului, faceți clic pe linkul "Locație țintă" și se va deschide folderul cu fișierele pe care doriți să le plasați.

Construirea unui server de foldere partajate

Crearea unui utilizator

În mod normal, dacă serverul este diferit, utilizatorul creat pe fiecare server este tratat intern ca un utilizator complet diferit. Prin crearea unui fișier cu același nume de utilizator și parolă, puteți omite autentificarea Windows pe alt server. De data aceasta vom folosi acest lucru pentru a accesa folderul partajat de pe un alt server.

Apropo, dacă aveți de-a face cu servere și conturi într-un domeniu precum Active Directory, puteți configura ambele servere cu acel cont, ceea ce simplifică într-o oarecare măsură configurarea.

Procedura de creare a unui utilizator nu este descrisă în detaliu.

SharedUser În acest caz, îl vom crea cu numele . Deoarece acest utilizator nu operează ecranul sau nu modifică setările, parola nu poate fi modificată.

Dacă lăsați implicit, vă puteți conecta cu acest utilizator cu Desktop la distanță etc., așa că vă rugăm să eliminați din grup Users .

Crearea unui dosar partajat

Nu contează unde îl creați. Acest lucru se datorează faptului că altor servere nu le pasă de locația folderului fizic. În acest caz, vom crea un folder numit direct sub SharedFolder unitatea C și îl vom partaja.

Deschideți proprietățile și configurați setările de partajare.

Numele folderului partajat ar trebui să SharedFolder fie . Acest nume va fi vizibil pentru alte servere. Adăugați SharedUser permisiunile.

Everyone Ștergeți fișierul . existent

Confirmați cu permisiunea "Modificare".

Deoarece am adăugat doar permisiuni care pot fi accesate din exterior, îl vom seta intern SharedUser , astfel încât să poată funcționa în acest folder.

Confirmați cu permisiunea "Modificare".

Creați un fișier pentru a verifica operațiunea.

Este OK dacă puteți accesa Explorer de pe \\<サーバー名>\ un alt PC, vă puteți conectaSharedUser cu , și puteți vizualiza fișierul.

Construirea unui server de aplicații

Instalarea IIS

Pentru moment, instalați-l implicit din managerul de servere. Nu voi intra în detaliile procedurii.

Nu sunt necesare caracteristici suplimentare.

Nu sunt necesare servicii IIS suplimentare în acest moment.

ASP.NET Core Runtime Hosting Bundle Instalare

Deoarece folosim ASP.NET Core 6, trebuie să instalăm timpul de rulare în consecință. Descărcați-l de la următoarea adresă URL:

Pentru a rula ASP.NET Core în IIS, aveți nevoie de ceva numit "Pachet de găzduire". Descărcați "Pachetul de găzduire" din ASP.NET Core Runtime.

Odată descărcat, rulați-l pe server.

Urmați expertul pentru a-l instala.

Crearea și implementarea aplicațiilor web

Din Instrumente de administrare Windows, deschideți Internet Information Services (IIS) Manager.

Puteți utiliza "Site-ul Web implicit" așa cum este, dar de data aceasta vom crea un site nou. Site-ul Web implicit este pornit automat, așa că vă rugăm să îl opriți.

Creați un nou site Web.

De data aceasta, numele site-ului este SharedFolderAccess , dar nu contează.

Rezervorul de aplicații este generat automat pentru noul site.

Creați și specificați un folder la alegere unde doriți să plasați programul.

Portul 80 este etichetat "Site Web implicit" și veți vedea un avertisment, dar îl puteți ignora dacă este deja oprit.

A fost creat.

Deschideți folderul specificat în site-ul Web din Windows Explorer și copiați și plasați toate programele publicate așa cum sunt.

Deschideți pagina din linkul IIS și vedeți dacă apare ecranul. Puteți deschide mai întâi un browser web și introduceți direct adresa URL.

Apropo, chiar dacă faceți clic pe buton în această stare, veți primi o eroare, deoarece setarea permisiunii nu a fost încă finalizată.

Crearea unui utilizator

Creați același utilizator SharedUser pe serverul de aplicații ca pe serverul de foldere partajate. Asigurați-vă că și parolele se potrivesc. Pașii sunt exact aceiași.

Modificarea permisiunilor rezervorului de aplicații

Accesul prin programe Web este determinat de rezervorul de aplicații. În mod implicit, are doar ApplicationPoolIdentity privilegiile de a rula aplicații web.

Prin modificarea acestui privilegiu în SharedUser , programul web poate funcționa cu privilegiile utilizatorului pe care l-ați setat. Acest lucru permite programelor SharedUser web să acceseze folderele partajate în .

Când deschideți IIS Manager, selectați Application Pools.

Există o adăugare SharedFolderAccess automată atunci când creați un site web, deci faceți clic dreapta pe el și selectați "Avansat".

Există un "ID" în modelul de proces, deci faceți clic pe butonul din dreapta.

Selectați "Cont personalizat" și faceți clic pe butonul "Setări".

SharedUser Introduceți și confirmați numele de utilizator și parola.

Confirmarea funcționării

Accesați pagina web și faceți clic pe buton. Dacă este afișat conținutul fișierului text, acesta are succes.

Asigurați-vă că aveți și un fișier nou în dosarul partajat.