Accesso alle cartelle condivise su altri server da ASP.NET applicazioni principali (IIS, impostazioni del pool di applicazioni)

Pagina aggiornata :
Data di creazione della pagina :

Ambiente di verifica del funzionamento

Visual Studio
  • Visual Studio 2022
ASP.NET Core
  • 6 (Pagine di Razpr)
Windows Server
  • 2022 (ASP.NET requisiti di sistema principali)
  • 2019 (server di distribuzione cartelle condivise)
IIS (Sistema Scientifico Italiano
  • 10.0

Ambiente operativo

Non l'ho testato in tutto, ma dovrebbe funzionare per la maggior parte.

Visual Studio
  • Tutto ciò che può sviluppare un progetto ASP.NET o ASP.NET Core
ASP.NET Core
  • Qualsiasi versione (MVC, Razor Pages, API)
ASP.NET
  • Qualsiasi versione è accettabile
Windows Server
  • Windows Server 2008 o versione successiva
IIS (Sistema Scientifico Italiano
  • 7.0 o versioni successive

precondizione

  • ASP.NET Le applicazioni principali sono destinate all'esecuzione in IIS. Altri server Web non saranno in grado di implementare il contenuto di questi suggerimenti

ambiente

Viene verificato nel seguente ambiente.

Scopo dell'utilizzo di PC e server
Windows 11 (locale) Un ambiente per lo sviluppo di programmi. Irrilevante ai fini di questo articolo
SV2022Test Un ambiente che esegue IIS e ASP.NET Core. Accedi alla cartella condivisa SV2019Test da qui
SV2019Test Server con cartelle condivise

Inoltre, le varie impostazioni sono le seguenti.

Valore del nome del parametro
Accedi al nome utente Utente condiviso
Nome cartella condivisa Cartella condivisa

Creare un programma per leggere e scrivere file da una cartella condivisa da un'applicazione ASP.NET Core

Come Mr./Ms. pull, è sufficiente fare clic sul pulsante,

  • Caricare i file in una cartella condivisa e visualizzarli sullo schermo
  • Scrivere un nuovo file in una cartella condivisa

processo.

Non ho ancora creato una cartella condivisa, quindi non posso eseguirne il debug, ma è un codice semplice, quindi per il momento mi limiterò a creare un programma.

ASP.NET progetto Core può essere di qualsiasi tipo, ma in questo caso sto usando Razor Pages.

Index.cshtml.cs e aggiungi cosa succede quando si fa clic sul pulsante. Il nome del server viene scritto direttamente, ma si prega di regolarlo bene durante il funzionamento effettivo. In alcuni casi, la cartella condivisa potrebbe non essere accessibile, quindi è racchiusa in un 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 ha un pulsante e un messaggio.

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

Dopo aver creato il programma, creare un file da distribuire sul server. In questo caso, utilizzeremo il metodo di inserire direttamente il file pubblicato, ma non importa quale metodo usi. Inoltre, la disposizione del programma non è l'essenza di questo suggerimento, quindi è elencato in modo semplificato.

Aggiungere una configurazione di pubblicazione.

Modificare le impostazioni.

Le impostazioni vengono modificate come mostrato in figura. Anche questo non è particolarmente correlato allo scopo di questo tempo, quindi impostalo in base al tuo ambiente.

Pubblicare il programma.

Dopo aver pubblicato il programma, fare clic sul collegamento "Posizione di destinazione" e si aprirà la cartella con i file che si desidera inserire.

Creazione di un server di cartelle condivise

Creare un utente

In genere, se il server è diverso, l'utente creato su ogni server viene considerato internamente come un utente completamente diverso. Creando un file con lo stesso nome utente e password, è possibile ignorare l'autenticazione di Windows su un altro server. Questa volta lo useremo per accedere alla cartella condivisa su un altro server.

A proposito, se si ha a che fare con server e account in un dominio come Active Directory, è possibile configurare entrambi i server con quell'account, il che semplifica in una certa misura la configurazione.

La procedura per la creazione di un utente non è descritta in dettaglio.

SharedUser In questo caso, lo creeremo con il nome . Poiché l'utente non utilizza lo schermo né modifica le impostazioni, la password non può essere modificata.

Se lasci l'impostazione predefinita, puoi accedere con questo utente con Desktop remoto, ecc., quindi rimuovi dal gruppo Users .

Creazione di una cartella condivisa

Non importa dove lo crei. Ciò è dovuto al fatto che gli altri server non si preoccupano della posizione della cartella fisica. In questo caso, creeremo una cartella denominata direttamente sotto SharedFolder l'unità C e la condivideremo.

Aprire le proprietà e configurare le impostazioni di condivisione.

Il nome della cartella condivisa deve SharedFolder essere . Questo nome sarà visibile agli altri server. Aggiungi SharedUser le autorizzazioni.

Everyone Eliminare il file .

Confermare con l'autorizzazione "Modifica".

Poiché abbiamo aggiunto solo autorizzazioni a cui è possibile accedere dall'esterno, lo imposteremo internamente SharedUser in modo che possa funzionare in questa cartella.

Confermare con l'autorizzazione "Modifica".

Creare un file per controllare l'operazione.

Va bene se è possibile accedere a Esplora risorse da \\<サーバー名>\ un altro PC, accedereSharedUser con e visualizzare il file.

Creazione di un server applicazioni

Installazione di IIS

Per il momento, installalo per impostazione predefinita dal server manager. Non entrerò nei dettagli della procedura.

Non sono necessarie funzionalità aggiuntive.

Al momento non sono necessari servizi IIS aggiuntivi.

ASP.NET Installazione del bundle di hosting runtime principale

Poiché stiamo usando ASP.NET Core 6, dobbiamo installare il runtime di conseguenza. Scaricalo dal seguente URL:

Per eseguire ASP.NET Core in IIS, è necessario qualcosa chiamato "Hosting Bundle". Scaricare l'"Hosting Bundle" dal ASP.NET Core Runtime.

Una volta scaricato, eseguilo sul server.

Segui la procedura guidata per installarlo.

Creazione e distribuzione di applicazioni Web

Da Strumenti di amministrazione di Windows, aprire Gestione Internet Information Services (IIS).

È possibile utilizzare "Sito Web predefinito" così com'è, ma questa volta verrà creato un nuovo sito. Il sito Web predefinito viene avviato automaticamente, quindi arrestarlo.

Creare un nuovo sito Web.

Questa volta, il nome del sito è SharedFolderAccess , ma non importa.

Il pool di applicazioni viene generato automaticamente per il nuovo sito.

Creare e specificare una cartella a scelta in cui si desidera inserire il programma.

La porta 80 è etichettata come "Sito Web predefinito" e verrà visualizzato un avviso, ma è possibile ignorarlo se è già inattivo.

È stato creato.

Aprire la cartella specificata nel sito Web in Esplora risorse, copiare e inserire tutti i programmi pubblicati così come sono.

Aprire la pagina dal collegamento IIS e verificare se viene visualizzata la schermata. È possibile aprire prima un browser Web e immettere direttamente l'URL.

A proposito, anche se fai clic sul pulsante in questo stato, riceverai un errore perché l'impostazione dell'autorizzazione non è stata ancora completata.

Creare un utente

Creare lo stesso utente SharedUser sul server applicazioni e sul server delle cartelle condivise. Assicurati che anche le tue password corrispondano. I passaggi sono esattamente gli stessi.

Modifica delle autorizzazioni del pool di applicazioni

L'accesso da parte dei programmi Web è determinato dal pool di applicazioni. Per impostazione predefinita, dispone solo ApplicationPoolIdentity dei privilegi per eseguire applicazioni Web.

Impostando questo privilegio su SharedUser , il programma Web può funzionare con i privilegi dell'utente impostato. Ciò consente ai programmi SharedUser Web di accedere alle cartelle condivise in .

Quando si apre Gestione IIS, selezionare Pool di applicazioni.

C'è un aggiunto SharedFolderAccess automaticamente quando crei un sito web, quindi fai clic con il pulsante destro del mouse su di esso e seleziona "Avanzate".

C'è un "ID" nel modello di processo, quindi fai clic sul pulsante a destra.

Seleziona "Account personalizzato" e fai clic sul pulsante "Impostazioni".

SharedUser Inserisci e conferma il tuo nome utente e la tua password.

Conferma dell'operazione

Vai alla pagina web e fai clic sul pulsante. Se viene visualizzato il contenuto del file di testo, l'operazione ha esito positivo.

Assicurati di avere anche un nuovo file nella cartella condivisa.