Zugriff auf freigegebene Ordner auf anderen Servern über ASP.NET Core-Anwendungen (IIS, Anwendungspooleinstellungen)
Umgebung zur Betriebsüberprüfung
- Visuelles Studio
-
- Visual Studio 2022
- ASP.NET Kern
-
- 6 (Razpr-Seiten)
- Windows-Server
-
- 2022 (ASP.NET Kernsystemanforderungen)
- 2019 (Bereitstellungsserver für freigegebene Ordner)
- IIS (IIS)
-
- 10.0
Betriebsumgebung
Ich habe es nicht in allem getestet, aber es sollte größtenteils funktionieren.
- Visuelles Studio
-
- Alles, was ein ASP.NET oder ASP.NET Core-Projekt entwickeln kann
- ASP.NET Kern
-
- Jede Version (MVC, Razor Pages, API)
- ASP.NET
-
- Jede Version ist akzeptabel
- Windows-Server
-
- Windows Server 2008 oder höher
- IIS (IIS)
-
- 7.0 oder höher
Vorbedingung
- ASP.NET Core-Anwendungen sind für die Ausführung auf IIS vorgesehen. Andere Webserver können den Inhalt dieser Tipps nicht implementieren
Umwelt
Es wird in der folgenden Umgebung überprüft.
Verwendungszweck von | PCs und Servern |
---|---|
Windows 11 (lokal) | Eine Umgebung für die Entwicklung von Programmen. Irrelevant für den Zweck dieses Artikels |
SV2022Test | Eine Umgebung, in der IIS und ASP.NET Core ausgeführt werden. Greifen Sie von hier aus auf den freigegebenen Ordner SV2019Test zu |
SV2019Test | Server mit freigegebenen Ordnern |
Darüber hinaus sind die verschiedenen Einstellungen wie folgt.
Wert des Parameternamens | |
---|---|
Zugriff auf Benutzername | SharedUser |
Name des freigegebenen Ordners | SharedFolder |
Erstellen eines Programms zum Lesen und Schreiben von Dateien aus einem freigegebenen Ordner aus einer ASP.NET Core-Anwendung
Als Herr/Frau ziehen Sie einfach auf die Schaltfläche,
- Laden Sie Dateien in einen freigegebenen Ordner und zeigen Sie sie auf dem Bildschirm an
- Schreiben einer neuen Datei in einen freigegebenen Ordner
Prozess.
Ich habe noch keinen freigegebenen Ordner erstellt, daher kann ich ihn nicht debuggen, aber es ist einfacher Code, also werde ich vorerst nur ein Programm erstellen.
ASP.NET Core-Projekt kann ein beliebiger Typ sein, aber in diesem Fall verwende ich Razor Pages.
Index.cshtml.cs
und fügen Sie hinzu, was passiert, wenn auf die Schaltfläche geklickt wird.
Der Servername wird direkt geschrieben, aber bitte passen Sie ihn im tatsächlichen Betrieb gut an.
In einigen Fällen ist der freigegebene Ordner möglicherweise nicht zugänglich, sodass er in einen try-catch eingeschlossen ist.
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
hat eine Schaltfläche und eine Nachricht.
@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>
@* ここまで追加 *@
Nachdem Sie das Programm erstellt haben, erstellen Sie eine Datei, die auf dem Server bereitgestellt werden soll. In diesem Fall verwenden wir die Methode, die veröffentlichte Datei direkt zu platzieren, aber es spielt keine Rolle, welche Methode Sie verwenden. Darüber hinaus ist die Anordnung des Programms nicht die Essenz dieses Tipps, daher ist es vereinfacht aufgeführt.
Fügen Sie eine Veröffentlichungskonfiguration hinzu.
Ändern Sie die Einstellungen.
Die Einstellungen werden wie in der Abbildung gezeigt geändert. Dies hat auch nicht besonders mit dem Zweck dieser Zeit zu tun, also stellen Sie es bitte entsprechend Ihrer Umgebung ein.
Veröffentlichen Sie das Programm.
Klicken Sie nach der Veröffentlichung des Programms auf den Link "Zielspeicherort" und der Ordner mit den Dateien, die Sie ablegen möchten, wird geöffnet.
Erstellen eines Servers für freigegebene Ordner
Erstellen eines Benutzers
Wenn der Server unterschiedlich ist, wird der auf jedem Server erstellte Benutzer intern als völlig anderer Benutzer behandelt. Wenn Sie eine Datei mit demselben Benutzernamen und Kennwort erstellen, können Sie die Windows-Authentifizierung auf einem anderen Server überspringen. Dieses Mal werden wir dies verwenden, um auf den freigegebenen Ordner auf einem anderen Server zuzugreifen.
Übrigens, wenn Sie es mit Servern und Konten in einer Domäne wie Active Directory zu tun haben, können Sie beide Server mit diesem Konto einrichten, was die Konfiguration etwas vereinfacht.
Die Vorgehensweise zum Anlegen eines Benutzers ist nicht detailliert beschrieben.
SharedUser
In diesem Fall erstellen wir es mit dem Namen .
Da dieser Benutzer den Bildschirm nicht bedient oder die Einstellungen ändert, kann das Passwort nicht geändert werden.
Wenn Sie die Standardeinstellung beibehalten, können Sie sich mit diesem Benutzer mit Remote Desktop usw. anmelden, also entfernen Sie bitte aus der Gruppe Users
.
Erstellen eines freigegebenen Ordners
Es spielt keine Rolle, wo Sie es erstellen. Dies liegt daran, dass sich andere Server nicht um den Speicherort des physischen Ordners kümmern.
In diesem Fall erstellen wir einen Ordner mit dem Namen direkt unter SharedFolder
dem Laufwerk C und geben ihn frei.
Öffnen Sie die Eigenschaften und konfigurieren Sie die Freigabeeinstellungen.
Der Name des freigegebenen Ordners sollte SharedFolder
lauten. Dieser Name ist für andere Server sichtbar.
Fügen Sie die Berechtigungen hinzu SharedUser
.
Everyone
Löschen Sie die vorhandene .
Bestätigen Sie mit der Berechtigung "Ändern".
Da wir nur Berechtigungen hinzugefügt haben, auf die von außen zugegriffen werden kann, werden wir sie intern SharedUser
so einstellen, dass sie in diesem Ordner ausgeführt werden können.
Bestätigen Sie mit der Berechtigung "Ändern".
Erstellen Sie eine Datei, um den Vorgang zu überprüfen.
Es ist in Ordnung, wenn Sie von einem anderen PC aus \\<サーバー名>\
auf den Explorer zugreifen, sich mit anmeldenSharedUser
und die Datei anzeigen können.
Erstellen eines Anwendungsservers
Installieren von IIS
Installieren Sie es vorerst standardmäßig über den Server-Manager. Ich werde nicht auf die Details des Verfahrens eingehen.
Es sind keine zusätzlichen Funktionen erforderlich.
Derzeit sind keine zusätzlichen IIS-Dienste erforderlich.
Installation des ASP.NET Core Runtime Hosting-Pakets
Da wir ASP.NET Core 6 verwenden, müssen wir die Runtime entsprechend installieren. Laden Sie es von der folgenden URL herunter:
Um ASP.NET Core in IIS auszuführen, benötigen Sie ein sogenanntes "Hosting-Bundle". Laden Sie das "Hosting Bundle" von der ASP.NET Core Runtime herunter.
Führen Sie es nach dem Herunterladen auf dem Server aus.
Folgen Sie dem Assistenten, um es zu installieren.
Erstellen und Bereitstellen von Webanwendungen
Öffnen Sie in den Windows-Verwaltungstools den IIS-Manager (Internetinformationsdienste).
Sie können "Standard-Website" so verwenden, wie es ist, aber dieses Mal werden wir eine neue Website erstellen. Die Standard-Website wird automatisch gestartet, also stoppen Sie sie.
Erstellen Sie eine neue Website.
Diesmal lautet SharedFolderAccess
der Site-Name , aber das spielt keine Rolle.
Der Anwendungspool wird automatisch für die neue Site generiert.
Erstellen Sie einen Ordner Ihrer Wahl, in dem Sie das Programm ablegen möchten, und geben Sie ihn an.
Port 80 ist mit "Standardwebsite" gekennzeichnet und Sie sehen eine Warnung, die Sie jedoch ignorieren können, wenn sie bereits ausgefallen ist.
Es wurde geschaffen.
Öffnen Sie den auf der Website angegebenen Ordner in Windows Explorer, und kopieren Sie alle veröffentlichten Programme, und platzieren Sie sie unverändert.
Öffnen Sie die Seite über den IIS-Link, und prüfen Sie, ob der Bildschirm angezeigt wird. Sie können zuerst einen Webbrowser öffnen und die URL direkt eingeben.
Übrigens, selbst wenn Sie in diesem Zustand auf die Schaltfläche klicken, erhalten Sie eine Fehlermeldung, da die Berechtigungseinstellung noch nicht abgeschlossen wurde.
Erstellen eines Benutzers
Erstellen Sie auf dem Anwendungsserver denselben Benutzer SharedUser
wie auf dem Server für freigegebene Ordner. Stellen Sie sicher, dass auch Ihre Passwörter übereinstimmen. Die Schritte sind genau die gleichen.
Ändern von Anwendungspoolberechtigungen
Der Zugriff durch Web-Programme wird durch den Anwendungspool bestimmt.
Standardmäßig verfügt es nur ApplicationPoolIdentity
über die Berechtigungen zum Ausführen von Webanwendungen.
Wenn Sie dieses Privileg in SharedUser
ändern, kann das Webprogramm mit den Privilegien des von Ihnen festgelegten Benutzers arbeiten.
Dadurch können Webprogramme SharedUser
auf freigegebene Ordner in .
Wenn Sie den IIS-Manager öffnen, wählen Sie Anwendungspools aus.
Es wird automatisch hinzugefügt SharedFolderAccess
, wenn Sie eine Website erstellen, also klicken Sie mit der rechten Maustaste darauf und wählen Sie "Erweitert".
Es gibt eine "ID" im Prozessmodell, also klicken Sie auf die Schaltfläche rechts.
Wählen Sie "Benutzerdefiniertes Konto" und klicken Sie auf die Schaltfläche "Einstellungen".
SharedUser
Geben Sie Ihren Benutzernamen und Ihr Passwort ein und bestätigen Sie es.
Betriebsbestätigung
Gehen Sie zur Webseite und klicken Sie auf die Schaltfläche. Wenn der Inhalt der Textdatei angezeigt wird, ist dies erfolgreich.
Stellen Sie sicher, dass Sie auch eine neue Datei im freigegebenen Ordner haben.