Достъп до споделени папки на други сървъри от ASP.NET основни приложения (IIS, настройки на набора приложения)

Страницата се актуализира :
Дата на създаване на страница :

Среда за проверка на експлоатацията

Визуално студио
  • Визуално студио 2022
ASP.NET Ядро
  • 6 (Разпр страници)
Сървър на Windows
  • 2022 г. (ASP.NET основни системни изисквания)
  • 2019 (сървър за разполагане на споделени папки)
ИИС
  • 10.0

Работна среда

Не съм го тествал във всичко, но трябва да работи в по-голямата си част.

Визуално студио
  • Всичко, което може да развие ASP.NET или ASP.NET основен проект
ASP.NET Ядро
  • Всяка версия (MVC, Razor Pages, API)
ASP.NET
  • Всяка версия е приемлива
Сървър на Windows
  • Windows Server 2008 или по-нова версия
ИИС
  • 7.0 или по-късно

Предпоставка

  • ASP.NET Основните приложения са предназначени да работят на IIS. Други уеб сървъри няма да могат да реализират съдържанието на тези съвети

околна среда

Тя се проверява в следната среда.

Цел на използване на персонални компютри и сървъри
Windows 11 (локално) Среда за разработване на програми. Без значение за целта на тази статия
СВ2022Тест Среда, която изпълнява IIS и ASP.NET Core. Достъп до споделената папка SV2019Test от тук
СВ2019Тест Сървъри със споделени папки

В допълнение, различните настройки са както следва.

Стойност на име на параметър
Потребителско име за достъп Споделен потребител
Име на споделена папка Споделена папка

Създаване на програма за четене и запис на файлове от споделена папка от приложение на ASP.NET Core

Като г-н / г-жа дръпнете, просто кликнете върху бутона,

  • Зареждане на файлове в споделена папка и показването им на екрана
  • Записване на нов файл в споделена папка

Процес.

Все още не съм създал споделена папка, така че не мога да я отстраня, но това е прост код, така че просто ще направя програма за момента.

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

След като създадете програмата, създайте файл, който да разположите на сървъра. В този случай ще използваме метода за поставяне на публикувания файл директно, но няма значение кой метод използвате. В допълнение, подреждането на програмата не е същността на този съвет, така че е изброен по опростен начин.

Добавяне на конфигурация за публикуване.

Променете настройките.

Настройките се променят, както е показано на фигурата. Това също не е особено свързано с целта на това време, така че, моля, задайте го според вашата среда.

Публикувайте програмата.

След като публикувате програмата, кликнете върху връзката "Целево местоположение" и ще се отвори папката с файловете, които искате да поставите.

Изграждане на сървър за споделени папки

Създаване на потребител

Обикновено, ако сървърът е различен, потребителят, създаден на всеки сървър, вътрешно се третира като напълно различен потребител. Чрез създаване на файл със същото потребителско име и парола можете да пропуснете удостоверяването на Windows на друг сървър. Този път ще използваме това за достъп до споделената папка на друг сървър.

Между другото, ако се занимавате със сървъри и акаунти в домейн като Active Directory, можете да настроите и двата сървъра с този акаунт, което до известна степен опростява конфигурацията.

Процедурата за създаване на потребител не е описана подробно.

SharedUser В този случай ще го създадем с името . Тъй като този потребител не работи с екрана и не променя настройките, паролата не може да бъде променяна.

Ако оставите по подразбиране, можете да влезете с този потребител с отдалечен работен плот и т.н., така че, моля, премахнете от групата Users .

Създаване на споделена папка

Няма значение къде го създавате. Това е така, защото другите сървъри не се интересуват от местоположението на физическата папка. В този случай ще създадем папка с име директно под SharedFolder устройството C и ще я споделим.

Отворете свойствата и конфигурирайте настройките за споделяне.

Името на споделената папка трябва да SharedFolder бъде . Това име ще бъде видимо за други сървъри. Добавете SharedUser разрешенията.

Everyone Изтрийте съществуващия .

Потвърдете с разрешението "Промяна".

Тъй като сме добавили само разрешения, които могат да бъдат достъпни отвън, ще го настроим вътрешно SharedUser , така че да може да работи в тази папка.

Потвърдете с разрешението "Промяна".

Създайте файл, за да проверите операцията.

Добре е, ако можете да получите достъп в Explorer от \\<サーバー名>\ друг компютър, да влезетеSharedUser с и да прегледате файла.

Изграждане на сървър за приложения

Инсталиране на IIS

За момента го инсталирайте по подразбиране от мениджъра на сървъра. Няма да навлизам в подробности за процедурата.

Не се изискват допълнителни функции.

В момента не се изискват допълнителни IIS услуги.

ASP.NET Инсталиране на основен хостинг пакет

Тъй като използваме ASP.NET Core 6, трябва да инсталираме съответно времето за изпълнение. Изтеглете го от следния URL адрес:

За да стартирате ASP.NET Core в IIS, имате нужда от нещо, наречено "Hosting Bundle". Изтеглете "Хостинг пакета" от ASP.NET Core Runtime.

След като го изтеглите, стартирайте го на сървъра.

Следвайте съветника, за да го инсталирате.

Създаване и разполагане на уеб приложения

От Windows Административни инструменти отворете диспечера на Internet Information Services (IIS).

Можете да използвате "Уеб сайт по подразбиране" такъв, какъвто е, но този път ще създадем нов сайт. Уеб сайтът по подразбиране се стартира автоматично, така че, моля, спрете го.

Създаване на нов уеб сайт.

Този път името на сайта е SharedFolderAccess , но няма значение.

Наборът от приложения се генерира автоматично за новия сайт.

Създайте и задайте папка по ваш избор, където искате да поставите програмата.

Порт 80 е обозначен като "Уеб сайт по подразбиране" и ще видите предупреждение, но можете да го игнорирате, ако вече е изключен.

Тя е създадена.

Отворете папката, указана в уеб сайта в Windows Explorer, и копирайте и поставете всички публикувани програми такива, каквито са.

Отворете страницата от връзката IIS и вижте дали екранът ще се появи. Можете първо да отворите уеб браузър и да въведете URL адреса директно.

Между другото, дори ако щракнете върху бутона в това състояние, ще получите грешка, защото настройката за разрешение все още не е завършена.

Създаване на потребител

Създайте същия потребител SharedUser на сървъра на приложението, както на сървъра за споделени папки. Уверете се, че паролите ви също съвпадат. Стъпките са абсолютно същите.

Промяна на разрешенията за набор приложения

Достъпът чрез уеб програми се определя от набора приложения. По подразбиране той има само ApplicationPoolIdentity привилегиите да изпълнява уеб приложения.

Чрез промяна на тази привилегия на , уеб програмата може да SharedUser работи с привилегиите на потребителя, който сте задали. Това позволява на уеб програмите SharedUser да имат достъп до споделени папки в .

Когато отворите IIS Manager, изберете Набори приложения.

Има автоматично добавяне SharedFolderAccess , когато създавате уебсайт, така че кликнете с десния бутон върху него и изберете "Разширени".

В модела на процеса има "ID", така че кликнете върху бутона вдясно.

Изберете "Персонализиран акаунт" и кликнете върху бутона "Настройки".

SharedUser Въведете и потвърдете потребителското си име и парола.

Потвърждаване на операцията

Отидете на уеб страницата и кликнете върху бутона. Ако се покаже съдържанието на текстовия файл, той е успешен.

Уверете се, че имате и нов файл в споделената папка.