Accés a carpetes compartides en altres servidors des d'aplicacions ASP.NET Core (IIS, configuració del grup d'aplicacions)

Pàgina actualitzada :
Data de creació de la pàgina :

Entorn de verificació d'operacions

Estudi visual
  • Estudi visual 2022
ASP.NET Nucli
  • 6 (Razpr Pàgines)
Windows Server
  • 2022 (ASP.NET requisits bàsics del sistema)
  • 2019 (Servidor compartit de desplegament de carpetes)
IIS
  • 10.0

Entorn operatiu

No ho he provat en tot, però hauria de funcionar en la seva major part.

Estudi visual
  • Qualsevol cosa que pugui desenvolupar un projecte ASP.NET o ASP.NET Core
ASP.NET Nucli
  • Qualsevol versió (MVC, Razor Pages, API)
ASP.NET
  • Qualsevol versió és acceptable
Windows Server
  • Windows Server 2008 o posterior
IIS
  • 7.0 o posterior

Precondició

  • ASP.NET aplicacions bàsiques estan pensades per executar-se en IIS. Altres servidors web no podran implementar el contingut d'aquests consells

entorn

Es verifica en el següent entorn.

Finalitat de l'ús de PCs i servidors
Windows 11 (local) Un entorn per al desenvolupament de programes. Irrellevant per al propòsit d'aquest article
Test SV2022 Un entorn que executa IIS i ASP.NET Core. Accediu a la carpeta compartida SV2019Test des d'aquí
SV2019Test Servidors amb carpetes compartides

A més, els diversos paràmetres són els següents.

Valor del nom del paràmetre
Nom d'usuari d'accés Usuari compartit
Nom de la carpeta compartida Carpeta compartida

Crear un programa per llegir i escriure arxius des d'una carpeta compartida des d'una aplicació ASP.NET Core

Com a estirada del Sr./Sra., simplement feu clic al botó,

  • Carregar arxius en una carpeta compartida i mostrar-los a la pantalla
  • Escriure un arxiu nou a una carpeta compartida

procés.

Encara no he creat una carpeta compartida, així que no puc depurar-la, però és un codi senzill, així que només faré un programa de moment.

ASP.NET projecte Core pot ser de qualsevol tipus, però en aquest cas, estic utilitzant Razor Pages.

Index.cshtml.cs i afegiu què passa quan es fa clic al botó. El nom del servidor s'escriu directament, però ajusteu-lo bé en el funcionament real. En alguns casos, és possible que la carpeta compartida no sigui accessible, de manera que s'inclou en un intent.

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 té un botó i un missatge.

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

Un cop hàgiu creat el programa, creeu un fitxer per desplegar-lo al servidor. En aquest cas, utilitzarem el mètode de col·locació directa del fitxer publicat, però no importa quin mètode utilitzeu. A més, l'ordenació del programa no és l'essència d'aquest consell, de manera que s'enumera de manera simplificada.

Afegiu una configuració de publicació.

Canvieu la configuració.

La configuració es canvia tal com es mostra a la figura. Això tampoc està especialment relacionat amb el propòsit d'aquest moment, així que configureu-lo segons el vostre entorn.

Publicar el programa.

Després de publicar el programa, feu clic a l'enllaç "Ubicació de destinació" i s'obrirà la carpeta amb els fitxers que voleu col·locar.

Creació d'un servidor de carpetes compartit

Crear un usuari

Normalment, si el servidor és diferent, l'usuari creat a cada servidor és tractat internament com un usuari completament diferent. En crear un fitxer amb el mateix nom d'usuari i contrasenya, podeu ometre l'autenticació del Windows a un altre servidor. Aquesta vegada utilitzarem aquesta per accedir a la carpeta compartida d'un altre servidor.

Per cert, si es tracta de servidors i comptes en un domini com Active Directory, podeu configurar els dos servidors amb aquest compte, cosa que simplifica una mica la configuració.

El procediment per crear un usuari no es descriu en detall.

SharedUser En aquest cas, el crearem amb el nom . Com que aquest usuari no opera la pantalla ni canvia la configuració, la contrasenya no es pot canviar.

Si deixeu el valor per defecte, podeu iniciar sessió amb aquest usuari amb Escriptori remot, etc., així que elimineu-lo del grup Users .

Creació d'una carpeta compartida

No importa on el creeu. Això es deu al fet que a altres servidors no els importa la ubicació de la carpeta física. En aquest cas, crearem una carpeta anomenada directament sota SharedFolder la unitat C i la compartirem.

Obriu les propietats i configureu els paràmetres per compartir.

El nom de la carpeta compartida ha SharedFolder de ser . Aquest nom serà visible per a altres servidors. Afegiu SharedUser els permisos.

Everyone Suprimiu l'existent .

Confirmeu amb el permís "Canvia".

Com que només hem afegit permisos als quals es pot accedir des de l'exterior, ho configurarem internament SharedUser perquè pugui funcionar en aquesta carpeta.

Confirmeu amb el permís "Canvia".

Creeu un fitxer per comprovar l'operació.

És correcte si podeu accedir a l'Explorer des d'un \\<サーバー名>\ altre PC, iniciar sessióSharedUser amb , i veure el fitxer.

Construcció d'un servidor d'aplicacions

Instal·lació d'IIS

De moment, instal·leu-lo per defecte des del gestor del servidor. No entraré en els detalls del procediment.

No es requereixen funcions addicionals.

No es requereixen serveis IIS addicionals en aquest moment.

ASP.NET Instal·lació del paquet d'allotjament en temps d'execució bàsic

Com que estem utilitzant ASP.NET Core 6, hem d'instal·lar el temps d'execució en conseqüència. Descarrega-te-la des de la següent URL:

Per executar ASP.NET Core a IIS, necessiteu una cosa anomenada "Hosting Bundle". Baixeu el "Hosting Bundle" des del ASP.NET Core Runtime.

Un cop descarregat, executeu-lo al servidor.

Seguiu l'assistent per instal·lar-lo.

Creació i desplegament d'aplicacions web

Des de Windows Administrative Tools, obriu Internet Information Services (IIS) Manager.

Podeu utilitzar "Lloc web per defecte" tal qual, però aquesta vegada crearem un nou lloc. El lloc web predeterminat s'inicia automàticament, així que si us plau, atureu-lo.

Crear un lloc web nou.

Aquesta vegada, el nom del lloc és SharedFolderAccess , però no importa.

El grup d'aplicacions es genera automàticament per al lloc nou.

Creeu i especifiqueu una carpeta de la vostra elecció on voleu col·locar el programa.

El port 80 està etiquetat com a "Lloc web predeterminat" i veureu un advertiment, però podeu ignorar-lo si ja no funciona.

S'ha creat.

Obriu la carpeta especificada al lloc web a l'Explorador de Windows i copieu i col·loqueu tots els programes publicats tal com són.

Obriu la pàgina des de l'enllaç IIS i comproveu si apareix la pantalla. Podeu obrir primer un navegador web i introduir l'URL directament.

Per cert, fins i tot si feu clic al botó en aquest estat, obtindreu un error perquè la configuració de permisos encara no s'ha completat.

Crear un usuari

Creeu el mateix usuari al servidor d'aplicacions SharedUser que al servidor de carpetes compartit. Assegureu-vos que les contrasenyes també coincideixin. Els passos són exactament els mateixos.

Canvi de permisos del grup d'aplicacions

L'accés per programes web ve determinat pel grup d'aplicacions. Per defecte, només ApplicationPoolIdentity té els privilegis per executar aplicacions web.

En canviar aquest privilegi a SharedUser , el programa web pot funcionar amb els privilegis de l'usuari que heu definit. Això permet als programes SharedUser web accedir a carpetes compartides en .

Quan obriu l'Administrador de l'IIS, seleccioneu Agrupacions d'aplicacions.

Hi ha un afegit SharedFolderAccess automàticament quan creeu un lloc web, així que feu-hi clic amb el botó dret i seleccioneu "Avançat".

Hi ha un "ID" al model de procés, de manera que feu clic al botó de la dreta.

Seleccioneu "Compte personalitzat" i feu clic al botó "Configuració".

SharedUser Introduïu i confirmeu el vostre nom d'usuari i contrasenya.

Confirmació de l'operació

Aneu a la pàgina web i feu clic al botó. Si es mostra el contingut del fitxer de text, és correcte.

Assegura't que també tinguis un arxiu nou a la carpeta compartida.