دسترسی به پوشه های مشترک در سرورهای دیگر از برنامه های هسته ASP.NET (IIS، تنظیمات استخر برنامه)

صفحه به روز شده :
تاریخ ایجاد صفحه :

محیط تایید عملیات

ویژوال استودیو
  • ویژوال استودیو 2022
ASP.NET هسته
  • 6 (صفحات رازپر)
ویندوز سرور
  • 2022 (ASP.NET هسته سیستم مورد نیاز)
  • 2019 (سرور استقرار پوشه مشترک)
مؤسسه
  • 10.0

محیط عملیاتی

من ان را در همه چیز ازمایش نکرده ام، اما باید در اکثر موارد کار کند.

ویژوال استودیو
  • هر چیزی که بتواند یک پروژه ASP.NET یا ASP.NET را توسعه دهد
ASP.NET هسته
  • هر نسخه (MVC، Razor Pages، API)
ASP.NET
  • هر نسخه قابل قبول است
ویندوز سرور
  • ویندوز سرور 2008 یا بالاتر
مؤسسه
  • 7.0 یا بعد از ان

پیششرط

  • ASP.NET برنامه های Core برای اجرا بر روی IIS در نظر گرفته شده اند. سایر وب سرورها قادر به پیاده سازی محتوای این نکات نخواهند بود

محیط

این در محیط زیر تایید شده است.

هدف از استفاده از رایانه های شخصی و سرور
ویندوز 11 (محلی) محیطی برای توسعه برنامه ها بی ربط به هدف این مقاله
SV2022 تست محیطی که IIS و ASP.NET Core را اجرا می کند. دسترسی به پوشه به اشتراک گذاشته شده SV2019Test از اینجا
SV2019 تست کارگزارهایی با پوشههای مشترک

علاوه بر این، تنظیمات مختلف به شرح زیر است.

پارامتر نام مقدار
دسترسی به نام کاربری اشتراک کاربر
نام پوشه مشترک پوشه اشتراکی

ایجاد یک برنامه برای خواندن و نوشتن فایل ها از یک پوشه مشترک از یک برنامه هسته ASP.NET

به عنوان یک اقای / خانم بکشید، به سادگی روی دکمه کلیک کنید،

  • بارگذاری پرونده ها در یک پوشه مشترک و نمایش انها بر روی صفحه نمایش
  • نوشتن یک پرونده جدید در یک پوشه مشترک

فرایند.

من هنوز یک پوشه مشترک ایجاد نکرده ام، بنابراین نمی توانم ان را اشکال زدایی کنم، اما این یک کد ساده است، بنابراین من فقط یک برنامه در حال حاضر می گیرم.

ASP.NET پروژه Core می تواند هر نوع باشد، اما در این مورد، من از Razor Pages استفاده می کنم.

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

هنگامی که برنامه را ایجاد کردید، یک فایل برای استقرار در سرور ایجاد کنید. در این مورد، ما از روش قرار دادن فایل منتشر شده به طور مستقیم استفاده خواهیم کرد، اما مهم نیست که از کدام روش استفاده می کنید. علاوه بر این، ترتیب برنامه جوهر این نکته نیست، بنابراین به شیوه ای ساده ذکر شده است.

یک پیکربندی انتشار اضافه کنید.

تنظیمات را تغییر دهید.

تنظیمات همانطور که در شکل نشان داده شده است تغییر می کند. این نیز به طور خاص به هدف این زمان مربوط نیست، بنابراین لطفا ان را با توجه به محیط خود تنظیم کنید.

برنامه را منتشر کنید.

پس از انتشار برنامه، بر روی لینک "محل هدف" کلیک کنید و پوشه با فایل هایی که می خواهید قرار دهید باز خواهد شد.

ایجاد یک سرور پوشه مشترک

ایجاد یک کاربر

به طور معمول، اگر سرور متفاوت باشد، کاربر ایجاد شده در هر سرور به عنوان یک کاربر کاملا متفاوت رفتار می شود. با ایجاد یک فایل با همان نام کاربری و رمز عبور، می توانید احراز هویت ویندوز را به سرور دیگری منتقل کنید. این بار ما از این برای دسترسی به پوشه مشترک در سرور دیگر استفاده خواهیم کرد.

به هر حال، اگر شما با سرورها و حساب ها در یک دامنه مانند دایرکتوری فعال برخورد می کنید، می توانید هر دو سرور را با ان حساب تنظیم کنید، که پیکربندی را تا حدودی ساده می کند.

روش ایجاد یک کاربر با جزئیات شرح داده نشده است.

SharedUser در این مورد، ما ان را با نام ایجاد خواهیم کرد. از انجا که این کاربر صفحه نمایش را اجرا نمی کند یا تنظیمات را تغییر نمی دهد، رمز عبور را نمی توان تغییر داد.

اگر به طور پیش فرض را ترک کنید، می توانید با این کاربر با Remote Desktop و غیره وارد شوید، بنابراین لطفا از گروه Users حذف کنید.

ایجاد یک پوشه به اشتراک گذاشته شده

مهم نیست که کجا ان را ایجاد می کنید. این به این دلیل است که سرورهای دیگر در مورد محل پوشه فیزیکی اهمیتی نمی دهند. در این مورد، ما یک پوشه به طور مستقیم در زیر SharedFolder درایو C ایجاد می کنیم و ان را به اشتراک می گذاریم.

ویژگی ها را باز کنید و تنظیمات اشتراک گذاری را پیکربندی کنید.

نام پوشه به اشتراک گذاشته شده باید SharedFolder باشد. این نام برای سرورهای دیگر قابل مشاهده خواهد بود. مجوزها را اضافه کنید SharedUser .

Everyone حذف موجود.

با اجازه "تغییر" تایید کنید.

از انجا که ما فقط مجوزهایی را اضافه کرده ایم که از خارج قابل دسترسی هستند، ما ان را در داخل تنظیم می کنیم تا SharedUser بتوانیم در این پوشه کار کنیم.

با اجازه "تغییر" تایید کنید.

یک فایل برای بررسی عملیات ایجاد کنید.

خوب است اگر شما می توانید در اکسپلورر از \\<サーバー名>\ یک کامپیوتر دیگر دسترسی داشته باشید، با ان وارد شویدSharedUser و فایل را مشاهده کنید.

ایجاد یک Application Server

نصب IIS

در حال حاضر، ان را به طور پیش فرض از مدیر سرور نصب کنید. من وارد جزئیات این عمل نمی شوم.

هیچ ویژگی اضافی مورد نیاز است.

در حال حاضر نیازی به خدمات IIS اضافی نیست.

ASP.NET هسته Runtime میزبانی بسته نرم افزاری نصب و راه اندازی

از انجا که ما از core 6 ASP.NET استفاده می کنیم، باید زمان اجرا را بر این اساس نصب کنیم. ان را از URL زیر دانلود کنید:

به منظور اجرای هسته ASP.NET در IIS، شما نیاز به چیزی به نام "بسته نرم افزاری میزبانی" دارید. "بسته نرم افزاری میزبانی" را از ASP.NET Core Runtime دانلود کنید.

پس از دانلود، ان را بر روی سرور اجرا کنید.

جادوگر را دنبال کنید تا ان را نصب کنید.

ایجاد و استقرار برنامه های وب

از ابزارهای اداری ویندوز، مدیر خدمات اطلاعات اینترنت باز (IIS).

شما می توانید از "وب سایت پیش فرض" استفاده کنید، اما این بار ما یک سایت جدید ایجاد خواهیم کرد. وب سایت پیش فرض به طور خودکار شروع می شود، بنابراین لطفا ان را متوقف کنید.

یک وب سایت جدید ایجاد کنید.

این بار، نام سایت است SharedFolderAccess ، اما مهم نیست.

استخر برنامه به طور خودکار برای سایت جدید تولید می شود.

ایجاد و مشخص کردن یک پوشه از انتخاب شما که در ان شما می خواهید به جای برنامه.

پورت 80 با برچسب "وب سایت پیش فرض" برچسب گذاری شده است و شما یک هشدار را مشاهده خواهید کرد، اما اگر قبلا خاموش شده است، می توانید ان را نادیده بگیرید.

ایجاد شده است.

پوشه مشخص شده در وب سایت در ویندوز اکسپلورر را باز کنید و تمام برنامه های منتشر شده را کپی و قرار دهید.

صفحه را از لینک IIS باز کنید و ببینید ایا صفحه نمایش ظاهر می شود. شما می توانید ابتدا یک مرورگر وب را باز کنید و URL را مستقیما وارد کنید.

به هر حال، حتی اگر روی دکمه در این حالت کلیک کنید، خطایی دریافت خواهید کرد زیرا تنظیم مجوز هنوز تکمیل نشده است.

ایجاد یک کاربر

همان کاربر SharedUser را در سرور برنامه به عنوان سرور پوشه مشترک ایجاد کنید. اطمینان حاصل کنید که رمزهای عبور شما نیز مطابقت دارند. مراحل دقیقا یکسان هستند.

تغییر مجوز استخر برنامه

دسترسی توسط برنامه های وب توسط استخر برنامه تعیین می شود. به طور پیش فرض، تنها ApplicationPoolIdentity امتیازات برای اجرای برنامه های وب است.

با تغییر این امتیاز به SharedUser ، برنامه وب می تواند با امتیازات کاربری که شما تعیین کرده اید کار کند. این اجازه می دهد تا برنامه های SharedUser وب برای دسترسی به پوشه های به اشتراک گذاشته شده در.

هنگامی که مدیر IIS را باز می کنید، Application Pools را انتخاب کنید.

هنگام ایجاد یک وب سایت به طور خودکار اضافه می SharedFolderAccess شود، بنابراین روی ان کلیک راست کنید و "Advanced" را انتخاب کنید.

یک "ID" در مدل فرایند وجود دارد، بنابراین روی دکمه سمت راست کلیک کنید.

"حساب سفارشی" را انتخاب کنید و روی دکمه "تنظیمات" کلیک کنید.

SharedUser نام کاربری و رمز عبور خود را وارد و تایید کنید.

تایید عملیات

به صفحه وب بروید و روی دکمه کلیک کنید. اگر محتویات فایل متنی نمایش داده شود، موفقیت امیز است.

اطمینان حاصل کنید که یک فایل جدید در پوشه به اشتراک گذاشته شده دارید.