גישה לתיקיות משותפות בשרתים אחרים מיישומי ליבה ASP.NET (IIS, הגדרות מאגר יישומים)

עודכן דף :
תאריך יצירת דף :

סביבת אימות פעולה

Visual Studio
  • Visual Studio 2022
ASP.NET Core
  • 6 (דפי Razpr)
שרת Windows
  • 2022 (ASP.NET דרישות מערכת הליבה)
  • 2019 (שרת פריסת תיקיות משותפות)
IIS
  • 10.0

סביבת הפעלה

לא בדקתי את זה בכל דבר, אבל זה אמור לעבוד לרוב.

Visual Studio
  • כל דבר שיכול לפתח פרויקט ליבה ASP.NET או ASP.NET
ASP.NET Core
  • כל גרסה (MVC, דפי גילוח, API)
ASP.NET
  • כל גרסה מקובלת
שרת Windows
  • Windows Server 2008 ואילך
IIS
  • 7.0 ואילך

תנאי מקדים

  • יישומי ליבה ASP.NET מיועדים לפעול ב- IIS. שרתי אינטרנט אחרים לא יוכלו ליישם את התוכן של עצות אלה

סביבה

הוא מאומת בסביבה הבאה.

מטרת השימוש במחשבים אישיים ובשרתים
Windows 11 (מקומי) סביבה לפיתוח תוכניות. לא רלוונטי למטרת מאמר זה
SV2022בדיקה סביבה שבה פועל IIS ו- ASP.NET Core. גש לתיקייה המשותפת SV2019Test מכאן
SV2019Test שרתים עם תיקיות משותפות

בנוסף, ההגדרות השונות הן כדלקמן.

ערך שם פרמטר
שם משתמש של Access SharedUser
שם תיקיה משותפת SharedFolder

יצירת תוכנית לקריאה וכתיבה של קבצים מתיקיה משותפת מיישום ASP.NET Core

כמשיכה של מר / גברת, פשוט לחץ על הכפתור,

  • טעינת קבצים בתיקיה משותפת והצגתם על המסך
  • כתיבת קובץ חדש לתיקיה משותפת

תהליך.

עדיין לא יצרתי תיקיה משותפת, אז אני לא יכול לאתר באגים בה, אבל זה קוד פשוט, אז אני פשוט אעשה תוכנית לעת עתה.

ASP.NET פרויקט ליבה יכול להיות מכל סוג, אבל במקרה זה, אני משתמש בדפי גילוח.

Index.cshtml.cs והוסף את מה שקורה כאשר לוחצים על הלחצן. שם השרת כתוב ישירות, אך אנא התאם אותו היטב בפעולה בפועל. במקרים מסוימים, ייתכן שהתיקיה המשותפת לא תהיה נגישה, ולכן היא סגורה בניסיון מלכוד.

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, עלינו להתקין את זמן הריצה בהתאם. הורד אותו מכתובת האתר הבאה:

כדי להפעיל ASP.NET Core ב- IIS, אתה צריך משהו שנקרא "חבילת אירוח". הורד את "חבילת אירוח" מ- ASP.NET Core Runtime.

לאחר ההורדה, הפעל אותו בשרת.

בצע את פעולת האשף כדי להתקין אותה.

יצירה ופריסה של יישומי אינטרנט

מתוך כלי הניהול של Windows, פתח את Internet Information Services (IIS) Manager.

אתה יכול להשתמש "אתר ברירת מחדל" כפי שהוא, אבל הפעם ניצור אתר חדש. אתר האינטרנט המוגדר כברירת מחדל מופעל באופן אוטומטי, לכן הפסק אותו.

צור אתר אינטרנט חדש.

הפעם, שם האתר הוא SharedFolderAccess , אבל זה לא משנה.

מאגר היישומים נוצר באופן אוטומטי עבור האתר החדש.

צור וציין תיקייה לפי בחירתך שבה ברצונך למקם את התוכנית.

יציאה 80 מסומנת כ"אתר אינטרנט המהווה ברירת מחדל" ותראה אזהרה, אך תוכל להתעלם ממנה אם היא כבר מושבתת.

הוא נוצר.

פתח את התיקיה שצוינה באתר האינטרנט בסייר Windows והעתק ומקם את כל התוכניות שפורסמו כפי שהן.

פתח את הדף מהקישור IIS ובדוק אם המסך מופיע. באפשרותך לפתוח דפדפן אינטרנט תחילה ולהזין את כתובת האתר ישירות.

אגב, גם אם תלחץ על הלחצן במצב זה, תקבל שגיאה מכיוון שהגדרת ההרשאה טרם הושלמה.

יצירת משתמש

צור את אותו משתמש SharedUser בשרת היישומים כמו בשרת התיקיות המשותף. ודא שגם הסיסמאות שלך תואמות. השלבים זהים לחלוטין.

שינוי הרשאות מאגר יישומים

הגישה באמצעות תוכניות אינטרנט נקבעת על-ידי מאגר היישומים. כברירת מחדל, יש לו רק ApplicationPoolIdentity את ההרשאות להפעלת יישומי אינטרנט.

על-ידי שינוי הרשאה זו ל SharedUser - , תוכנית האינטרנט יכולה לפעול עם ההרשאות של המשתמש שהגדרת. הדבר מאפשר לתוכניות SharedUser אינטרנט לגשת לתיקיות משותפות ב- .

בעת פתיחת IIS Manager, בחר מאגרי יישומים.

יש נוסף SharedFolderAccess באופן אוטומטי בעת יצירת אתר, אז לחץ לחיצה ימנית על זה ובחר "מתקדם".

יש "מזהה" במודל התהליך, אז לחץ על הלחצן בצד ימין.

בחר "חשבון מותאם אישית" ולחץ על הלחצן "הגדרות".

SharedUser הזן ואשר את שם המשתמש והסיסמה שלך.

אישור פעולה

עבור לדף האינטרנט ולחץ על הכפתור. אם התוכן של קובץ הטקסט מוצג, הוא מצליח.

ודא שיש לך גם קובץ חדש בתיקיה המשותפת.