Accesso alle cartelle condivise su altri server da ASP.NET applicazioni principali (IIS, impostazioni del pool di applicazioni)
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.