Accès aux dossiers partagés sur d’autres serveurs à partir d’applications ASP.NET Core (IIS, paramètres du pool d’applications)
Environnement de vérification des opérations
- Studio visuel
-
- Visual Studio 2022
- ASP.NET Noyau
-
- 6 (Pages Razpr)
- Serveur Windows
-
- 2022 (ASP.NET Configuration système de base)
- 2019 (serveur de déploiement de dossiers partagés)
- L’IIS
-
- 10.0
Environnement d’exploitation
Je ne l’ai pas testé dans tout, mais cela devrait fonctionner pour la plupart.
- Studio visuel
-
- Tout ce qui peut développer un projet ASP.NET ou ASP.NET Core
- ASP.NET Noyau
-
- Toute version (MVC, Razor Pages, API)
- ASP.NET
-
- Toute version est acceptable
- Serveur Windows
-
- Windows Server 2008 ou version ultérieure
- L’IIS
-
- 7.0 ou version ultérieure
condition préalable
- ASP.NET applications principales sont destinées à s’exécuter sur IIS. Les autres serveurs web ne seront pas en mesure d’implémenter le contenu de ces conseils
environnement
Elle est vérifiée dans l’environnement suivant.
Objectif d’utilisation des | PC et des serveurs |
---|---|
Windows 11 (local) | Un environnement propice à l’élaboration de programmes. Sans rapport avec le but de cet article |
SV2022Test | Un environnement qui exécute IIS et ASP.NET Core. Accédez au dossier partagé SV2019Test à partir d’ici |
SV2019Test | Serveurs avec dossiers partagés |
De plus, les différents réglages sont les suivants.
Valeur du nom du paramètre | |
---|---|
Accéder au nom d’utilisateur | Utilisateur partagé |
Nom du dossier partagé | DossierPartagé |
Créer un programme pour lire et écrire des fichiers à partir d’un dossier partagé à partir d’une application ASP.NET Core
En tant que M./Mme, cliquez simplement sur le bouton,
- Charger des fichiers dans un dossier partagé et les afficher à l’écran
- Écrire un nouveau fichier dans un dossier partagé
processus.
Je n’ai pas encore créé de dossier partagé, donc je ne peux pas le déboguer, mais c’est du code simple, donc je vais juste faire un programme pour le moment.
ASP.NET projet de base peut être de n’importe quel type, mais dans ce cas, j’utilise Razor Pages.
Index.cshtml.cs
et ajoutez ce qui se passe lorsque l’on clique sur le bouton.
Le nom du serveur est écrit directement, mais veuillez bien l’ajuster en fonctionnement réel.
Dans certains cas, le dossier partagé peut ne pas être accessible, il est donc enfermé dans 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
a un bouton et un message.
@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>
@* ここまで追加 *@
Une fois que vous avez créé le programme, créez un fichier à déployer sur le serveur. Dans ce cas, nous utiliserons la méthode de placement direct du fichier publié, mais peu importe la méthode que vous utilisez. De plus, l’organisation du programme n’est pas l’essence de cette astuce, elle est donc répertoriée de manière simplifiée.
Ajoutez une configuration de publication.
Modifiez les paramètres.
Les paramètres sont modifiés comme indiqué sur la figure. Ce n’est pas non plus particulièrement lié à l’objectif de ce temps, veuillez donc le régler en fonction de votre environnement.
Publiez le programme.
Après avoir publié le programme, cliquez sur le lien « Emplacement cible » et le dossier contenant les fichiers que vous souhaitez placer s’ouvrira.
Création d’un serveur de dossiers partagés
Créer un utilisateur
Normalement, si le serveur est différent, l’utilisateur créé sur chaque serveur est traité en interne comme un utilisateur complètement différent. En créant un fichier avec le même nom d’utilisateur et le même mot de passe, vous pouvez ignorer l’authentification Windows sur un autre serveur. Cette fois, nous l’utiliserons pour accéder au dossier partagé sur un autre serveur.
D’ailleurs, si vous avez affaire à des serveurs et à des comptes dans un domaine tel qu’Active Directory, vous pouvez configurer les deux serveurs avec ce compte, ce qui simplifie la configuration dans une certaine mesure.
La procédure de création d’un utilisateur n’est pas décrite en détail.
SharedUser
Dans ce cas, nous allons le créer avec le nom .
Comme cet utilisateur n’utilise pas l’écran ou ne modifie pas les paramètres, le mot de passe ne peut pas être modifié.
Si vous laissez la valeur par défaut, vous pouvez vous connecter avec cet utilisateur avec Remote Desktop, etc., veuillez donc supprimer du groupe Users
.
Création d’un dossier partagé
Peu importe où vous le créez. En effet, les autres serveurs ne se soucient pas de l’emplacement du dossier physique.
Dans ce cas, nous allons créer un dossier nommé directement sous SharedFolder
le lecteur C et le partager.
Ouvrez les propriétés et configurez les paramètres de partage.
Le nom du dossier partagé doit SharedFolder
être . Ce nom sera visible par les autres serveurs.
Ajoutez SharedUser
les autorisations.
Everyone
Supprimez le fichier .
Confirmez avec l’autorisation « Modifier ».
Comme nous n’avons ajouté que des autorisations accessibles de l’extérieur, nous allons le définir en interne SharedUser
afin qu’il puisse fonctionner dans ce dossier.
Confirmez avec l’autorisation « Modifier ».
Créez un fichier pour vérifier l’opération.
Vous pouvez accéder à l’Explorateur à partir d’un \\<サーバー名>\
autre PC, vous connecterSharedUser
avec et afficher le fichier.
Création d’un serveur d’applications
Installation d’IIS
Pour l’instant, installez-le par défaut depuis le gestionnaire de serveur. Je n’entrerai pas dans les détails de la procédure.
Aucune fonctionnalité supplémentaire n’est requise.
Aucun service IIS supplémentaire n’est requis pour le moment.
Installation de l’offre groupée d’hébergement d’exécution ASP.NET Core
Puisque nous utilisons ASP.NET Core 6, nous devons installer le runtime en conséquence. Téléchargez-le à partir de l’URL suivante :
Pour exécuter ASP.NET Core dans IIS, vous avez besoin de quelque chose appelé « Bundle d’hébergement ». Téléchargez le « Bundle d’hébergement » à partir du runtime ASP.NET Core.
Une fois téléchargé, exécutez-le sur le serveur.
Suivez l’assistant pour l’installer.
Création et déploiement d’applications Web
Dans Outils d’administration Windows, ouvrez le Gestionnaire des services Internet (IIS).
Vous pouvez utiliser « Site Web par défaut » tel quel, mais cette fois-ci, nous allons créer un nouveau site. Le site Web par défaut est automatiquement démarré, veuillez donc l’arrêter.
Créez un nouveau site Web.
Cette fois, le nom du site est SharedFolderAccess
, mais cela n’a pas d’importance.
Le pool d’applications est généré automatiquement pour le nouveau site.
Créez et spécifiez un dossier de votre choix où vous souhaitez placer le programme.
Le port 80 est étiqueté « Site Web par défaut » et vous verrez un avertissement, mais vous pouvez l’ignorer s’il est déjà en panne.
Il a été créé.
Ouvrez le dossier spécifié dans le site Web de l’Explorateur Windows, puis copiez et placez tous les programmes publiés tels quels.
Ouvrez la page à partir du lien IIS et voyez si l’écran apparaît. Vous pouvez d’abord ouvrir un navigateur Web et saisir directement l’URL.
D’ailleurs, même si vous cliquez sur le bouton dans cet état, vous obtiendrez une erreur car le paramètre d’autorisation n’a pas encore été terminé.
Créer un utilisateur
Créez le même utilisateur SharedUser
sur le serveur d’applications que sur le serveur de dossiers partagés. Assurez-vous également que vos mots de passe correspondent. Les étapes sont exactement les mêmes.
Modification des autorisations du pool d’applications
L’accès par les programmes Web est déterminé par le pool d’applications.
Par défaut, il ne dispose que ApplicationPoolIdentity
des privilèges nécessaires pour exécuter des applications Web.
En changeant ce privilège en SharedUser
, le programme Web peut fonctionner avec les privilèges de l’utilisateur que vous avez défini.
Cela permet aux programmes SharedUser
Web d’accéder aux dossiers partagés dans .
Lorsque vous ouvrez le Gestionnaire des services Internet, sélectionnez Pools d’applications.
Il y a un ajout SharedFolderAccess
automatique lorsque vous créez un site Web, alors faites un clic droit dessus et sélectionnez « Avancé ».
Il y a un « ID » dans le modèle de processus, alors cliquez sur le bouton à droite.
Sélectionnez « Compte personnalisé » et cliquez sur le bouton « Paramètres ».
SharedUser
Entrez et confirmez votre nom d’utilisateur et votre mot de passe.
Confirmation de l’opération
Allez sur la page Web et cliquez sur le bouton. Si le contenu du fichier texte est affiché, c’est réussi.
Assurez-vous que vous avez également un nouveau fichier dans le dossier partagé.