Πρόσβαση σε κοινόχρηστους φακέλους σε άλλους διακομιστές από εφαρμογές ASP.NET Core (IIS, ρυθμίσεις χώρου συγκέντρωσης εφαρμογών)

Σελίδα ενημέρωση :
Ημερομηνία δημιουργίας σελίδας :

Περιβάλλον επαλήθευσης λειτουργίας

Οπτικό στούντιο
  • Visual Studio 2022
ASP.NET Πυρήνας
  • 6 (σελίδες Razpr)
Διακομιστής των Windows
  • 2022 (ASP.NET Βασικές απαιτήσεις συστήματος)
  • 2019 (διακομιστής ανάπτυξης κοινόχρηστου φακέλου)
IIS
  • 10.0

Περιβάλλον λειτουργίας

Δεν το έχω δοκιμάσει σε όλα, αλλά θα πρέπει να λειτουργεί ως επί το πλείστον.

Οπτικό στούντιο
  • Οτιδήποτε μπορεί να αναπτύξει ένα έργο ASP.NET ή ASP.NET Core
ASP.NET Πυρήνας
  • Οποιαδήποτε έκδοση (MVC, Razor Pages, API)
ASP.NET
  • Οποιαδήποτε έκδοση είναι αποδεκτή
Διακομιστής των Windows
  • Windows Server 2008 ή νεότερη έκδοση
IIS
  • 7.0 ή νεότερη έκδοση

Προϋπόθεση

  • ASP.NET Οι βασικές εφαρμογές προορίζονται για εκτέλεση στις υπηρεσίες IIS. Άλλοι διακομιστές ιστού δεν θα είναι σε θέση να εφαρμόσουν το περιεχόμενο αυτών των συμβουλών

περιβάλλον

Επαληθεύεται στο ακόλουθο περιβάλλον.

Σκοπός χρήσης προσωπικών υπολογιστών και διακομιστών
Windows 11 (τοπικά) Ένα περιβάλλον για την ανάπτυξη προγραμμάτων. Άσχετο με το σκοπό του παρόντος άρθρου
SV2022Δοκιμή Ένα περιβάλλον που εκτελεί τις υπηρεσίες IIS και ASP.NET πυρήνα. Αποκτήστε πρόσβαση στον κοινόχρηστο φάκελο SV2019Test από εδώ
SV2019Δοκιμή Διακομιστές με κοινόχρηστους φακέλους

Επιπλέον, οι διάφορες ρυθμίσεις έχουν ως εξής.

Τιμή ονόματος παραμέτρου
Πρόσβαση στο όνομα χρήστη Κοινόχρηστοςχρήστης
Όνομα κοινόχρηστου φακέλου SharedFolder

Δημιουργήστε ένα πρόγραμμα για την ανάγνωση και εγγραφή αρχείων από έναν κοινόχρηστο φάκελο από μια εφαρμογή ASP.NET Core

Ως κύριος / κα τραβήξτε, απλά κάντε κλικ στο κουμπί,

  • Φορτώστε αρχεία σε έναν κοινόχρηστο φάκελο και εμφανίστε τα στην οθόνη
  • Εγγραφή νέου αρχείου σε κοινόχρηστο φάκελο

διεργασία.

Δεν έχω δημιουργήσει ακόμα έναν κοινόχρηστο φάκελο, οπότε δεν μπορώ να τον διορθώσω, αλλά είναι απλός κώδικας, οπότε θα φτιάξω απλώς ένα πρόγραμμα προς το παρόν.

ASP.NET Το βασικό έργο μπορεί να είναι οποιουδήποτε τύπου, αλλά σε αυτήν την περίπτωση, χρησιμοποιώ σελίδες ξυραφιού.

Index.cshtml.cs και προσθέστε τι συμβαίνει όταν κάνετε κλικ στο κουμπί. Το όνομα του διακομιστή γράφεται απευθείας, αλλά προσαρμόστε το καλά στην πραγματική λειτουργία. Σε ορισμένες περιπτώσεις, ο κοινόχρηστος φάκελος ενδέχεται να μην είναι προσβάσιμος, επομένως περικλείεται σε ένα 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 έχει ένα κουμπί και ένα μήνυμα.

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

Αφού δημιουργήσετε το πρόγραμμα, δημιουργήστε ένα αρχείο για ανάπτυξη στο διακομιστή. Σε αυτήν την περίπτωση, θα χρησιμοποιήσουμε απευθείας τη μέθοδο τοποθέτησης του δημοσιευμένου αρχείου, αλλά δεν έχει σημασία ποια μέθοδο χρησιμοποιείτε. Επιπλέον, η διάταξη του προγράμματος δεν είναι η ουσία αυτής της συμβουλής, επομένως παρατίθεται με απλοποιημένο τρόπο.

Προσθέστε μια ρύθμιση παραμέτρων δημοσίευσης.

Αλλάξτε τις ρυθμίσεις.

Οι ρυθμίσεις αλλάζουν όπως φαίνεται στην εικόνα. Αυτό επίσης δεν σχετίζεται ιδιαίτερα με τον σκοπό αυτής της περιόδου, οπότε ορίστε το σύμφωνα με το περιβάλλον σας.

Δημοσιεύστε το πρόγραμμα.

Αφού δημοσιεύσετε το πρόγραμμα, κάντε κλικ στο σύνδεσμο "Τοποθεσία προορισμού" και θα ανοίξει ο φάκελος με τα αρχεία που θέλετε να τοποθετήσετε.

Δημιουργία διακομιστή κοινόχρηστων φακέλων

Δημιουργία χρήστη

Κανονικά, εάν ο διακομιστής είναι διαφορετικός, ο χρήστης που δημιουργείται σε κάθε διακομιστή αντιμετωπίζεται εσωτερικά ως εντελώς διαφορετικός χρήστης. Δημιουργώντας ένα αρχείο με το ίδιο όνομα χρήστη και κωδικό πρόσβασης, μπορείτε να παραλείψετε τον έλεγχο ταυτότητας των Windows σε άλλο διακομιστή. Αυτή τη φορά θα το χρησιμοποιήσουμε για πρόσβαση στον κοινόχρηστο φάκελο σε άλλο διακομιστή.

Παρεμπιπτόντως, εάν ασχολείστε με διακομιστές και λογαριασμούς σε έναν τομέα όπως η υπηρεσία καταλόγου Active Directory, μπορείτε να ρυθμίσετε και τους δύο διακομιστές με αυτόν τον λογαριασμό, γεγονός που απλοποιεί τη διαμόρφωση σε κάποιο βαθμό.

Η διαδικασία δημιουργίας ενός χρήστη δεν περιγράφεται λεπτομερώς.

SharedUser Σε αυτήν την περίπτωση, θα το δημιουργήσουμε με το όνομα . Δεδομένου ότι αυτός ο χρήστης δεν χειρίζεται την οθόνη ή δεν αλλάζει τις ρυθμίσεις, ο κωδικός πρόσβασης δεν μπορεί να αλλάξει.

Εάν αφήσετε την προεπιλογή, μπορείτε να συνδεθείτε με αυτόν τον χρήστη με την Απομακρυσμένη επιφάνεια εργασίας κ.λπ., οπότε αφαιρέστε από την ομάδα Users .

Δημιουργία κοινόχρηστου φακέλου

Δεν έχει σημασία πού το δημιουργείτε. Αυτό συμβαίνει επειδή άλλοι διακομιστές δεν ενδιαφέρονται για τη θέση του φυσικού φακέλου. Σε αυτήν την περίπτωση, θα δημιουργήσουμε έναν φάκελο που ονομάζεται απευθείας κάτω από SharedFolder τη μονάδα δίσκου C και θα τον μοιραστούμε.

Ανοίξτε τις ιδιότητες και διαμορφώστε τις ρυθμίσεις κοινής χρήσης.

Το όνομα του κοινόχρηστου φακέλου πρέπει SharedFolder να είναι . Αυτό το όνομα θα είναι ορατό σε άλλους διακομιστές. Προσθέστε SharedUser τα δικαιώματα.

Everyone Διαγράψτε το υπάρχον αρχείο .

Επιβεβαιώστε με την άδεια "Αλλαγή".

Δεδομένου ότι έχουμε προσθέσει μόνο δικαιώματα στα οποία μπορείτε να έχετε πρόσβαση από έξω, θα το ρυθμίσουμε εσωτερικά SharedUser έτσι ώστε να μπορεί να λειτουργήσει σε αυτόν τον φάκελο.

Επιβεβαιώστε με την άδεια "Αλλαγή".

Δημιουργήστε ένα αρχείο για να ελέγξετε τη λειτουργία.

Είναι εντάξει εάν μπορείτε να αποκτήσετε πρόσβαση στον Explorer από \\<サーバー名>\ άλλο υπολογιστή, να συνδεθείτεSharedUser με το , και να δείτε το αρχείο.

Δημιουργία διακομιστή εφαρμογών

Εγκατάσταση των υπηρεσιών IIS

Προς το παρόν, εγκαταστήστε το από προεπιλογή από τον διαχειριστή διακομιστή. Δεν θα μπω στις λεπτομέρειες της διαδικασίας.

Δεν απαιτούνται πρόσθετα χαρακτηριστικά.

Δεν απαιτούνται πρόσθετες υπηρεσίες IIS αυτήν τη στιγμή.

ASP.NET Εγκατάσταση πακέτου φιλοξενίας Core Runtime

Δεδομένου ότι χρησιμοποιούμε ASP.NET Core 6, πρέπει να εγκαταστήσουμε ανάλογα τον χρόνο εκτέλεσης. Κατεβάστε το από την ακόλουθη διεύθυνση URL:

Για να εκτελέσετε το ASP.NET Core στις υπηρεσίες IIS, χρειάζεστε κάτι που ονομάζεται "Πακέτο φιλοξενίας". Κατεβάστε το "Hosting Bundle" από το ASP.NET Core Runtime.

Μετά τη λήψη, εκτελέστε το στο διακομιστή.

Ακολουθήστε τον οδηγό για να το εγκαταστήσετε.

Δημιουργία και ανάπτυξη εφαρμογών Web

Από τα εργαλεία διαχείρισης των Windows, ανοίξτε τη Διαχείριση υπηρεσιών Internet Information Services (IIS).

Μπορείτε να χρησιμοποιήσετε το "Default Web Site" ως έχει, αλλά αυτή τη φορά θα δημιουργήσουμε έναν νέο ιστότοπο. Η προεπιλεγμένη τοποθεσία Web ξεκινά αυτόματα, επομένως σταματήστε την.

Δημιουργήστε μια νέα τοποθεσία Web.

Αυτή τη φορά, το όνομα του ιστότοπου είναι SharedFolderAccess , αλλά δεν έχει σημασία.

Ο χώρος συγκέντρωσης εφαρμογών δημιουργείται αυτόματα για τη νέα τοποθεσία.

Δημιουργήστε και καθορίστε ένα φάκελο της επιλογής σας όπου θέλετε να τοποθετήσετε το πρόγραμμα.

Η θύρα 80 φέρει την ένδειξη "Προεπιλεγμένη τοποθεσία Web" και θα δείτε μια προειδοποίηση, αλλά μπορείτε να την αγνοήσετε εάν είναι ήδη εκτός λειτουργίας.

Έχει δημιουργηθεί.

Ανοίξτε το φάκελο που καθορίζεται στην τοποθεσία Web στην Εξερεύνηση των Windows και αντιγράψτε και τοποθετήστε όλα τα δημοσιευμένα προγράμματα ως έχουν.

Ανοίξτε τη σελίδα από τη σύνδεση IIS και δείτε εάν εμφανίζεται η οθόνη. Μπορείτε πρώτα να ανοίξετε ένα πρόγραμμα περιήγησης ιστού και να εισαγάγετε απευθείας τη διεύθυνση URL.

Παρεμπιπτόντως, ακόμα κι αν κάνετε κλικ στο κουμπί σε αυτήν την κατάσταση, θα λάβετε ένα σφάλμα επειδή η ρύθμιση άδειας δεν έχει ολοκληρωθεί ακόμα.

Δημιουργία χρήστη

Δημιουργήστε τον ίδιο χρήστη SharedUser στο διακομιστή εφαρμογών όπως και στο διακομιστή κοινόχρηστου φακέλου. Βεβαιωθείτε ότι οι κωδικοί πρόσβασής σας ταιριάζουν επίσης. Τα βήματα είναι ακριβώς τα ίδια.

Αλλαγή δικαιωμάτων χώρου συγκέντρωσης εφαρμογών

Η πρόσβαση μέσω προγραμμάτων Web καθορίζεται από το χώρο συγκέντρωσης εφαρμογών. Από προεπιλογή, έχει μόνο ApplicationPoolIdentity τα δικαιώματα εκτέλεσης εφαρμογών web.

Αλλάζοντας αυτό το δικαίωμα σε SharedUser , το πρόγραμμα web μπορεί να λειτουργήσει με τα δικαιώματα του χρήστη που έχετε ορίσει. Αυτό επιτρέπει στα προγράμματα SharedUser web να έχουν πρόσβαση σε κοινόχρηστους φακέλους στο .

Όταν ανοίγετε τη Διαχείριση των υπηρεσιών IIS, επιλέξτε Χώροι συγκέντρωσης εφαρμογών.

Προστίθεται αυτόματα SharedFolderAccess ένας ιστότοπος όταν δημιουργείτε έναν ιστότοπο, οπότε κάντε δεξί κλικ πάνω του και επιλέξτε "Για προχωρημένους".

Υπάρχει ένα "ID" στο μοντέλο διαδικασίας, οπότε κάντε κλικ στο κουμπί στα δεξιά.

Επιλέξτε "Προσαρμοσμένος λογαριασμός" και κάντε κλικ στο κουμπί "Ρυθμίσεις".

SharedUser Εισαγάγετε και επιβεβαιώστε το όνομα χρήστη και τον κωδικό πρόσβασής σας.

Επιβεβαίωση λειτουργίας

Μεταβείτε στην ιστοσελίδα και κάντε κλικ στο κουμπί. Εάν εμφανιστούν τα περιεχόμενα του αρχείου κειμένου, είναι επιτυχής.

Βεβαιωθείτε ότι έχετε επίσης ένα νέο αρχείο στον κοινόχρηστο φάκελο.