Piekļuve koplietojamām mapēm citos serveros no ASP.NET Core lietojumprogrammām (IIS, lietojumprogrammu pūla iestatījumi)
Darbības verifikācijas vide
- Visual Studio
-
- Visual Studio 2022
- ASP.NET kodols
-
- 6 (Razpr lapas)
- Windows Server
-
- 2022. gads (ASP.NET sistēmas pamatprasības)
- 2019. gads (koplietojamo mapju izvietošanas serveris)
- IIS
-
- 10.0
Darbības vide
Es to neesmu pārbaudījis visā, bet tam lielākoties vajadzētu darboties.
- Visual Studio
-
- Jebkas, kas var izstrādāt ASP.NET vai ASP.NET Core projektu
- ASP.NET kodols
-
- Jebkura versija (MVC, Razor Pages, API)
- ASP.NET
-
- Jebkura versija ir pieņemama
- Windows Server
-
- Windows Server 2008 vai jaunāka versija
- IIS
-
- 7.0 vai jaunāka versija
Priekšnosacījumu
- ASP.NET Galvenās lietojumprogrammas ir paredzētas darbībai IIS. Citi tīmekļa serveri nevarēs ieviest šo padomu saturu
vide
Tas tiek pārbaudīts šādā vidē.
Personālo datoru un serveru | izmantošanas mērķis |
---|---|
Windows 11 (vietējais) | Vide programmu izstrādei. Neatbilstoši šī raksta mērķim |
SV2022Tests | Vide, kurā darbojas IIS un ASP.NET Core. Piekļuve SV2019Test koplietojamai mapei no šejienes |
SV2019Tests | Serveri ar koplietojamām mapēm |
Turklāt dažādie iestatījumi ir šādi.
Parametra nosaukuma | vērtība |
---|---|
Piekļuves lietotājvārds | SharedUser |
Koplietojamās mapes nosaukums | SharedFolder |
Programmas izveide failu lasīšanai un rakstīšanai no koplietojamas mapes no ASP.NET Core lietojumprogrammas
Kad mr./ms. velciet, vienkārši noklikšķiniet uz pogas,
- Failu ielāde koplietojamā mapē un to parādīšana ekrānā
- Jauna faila rakstīšana koplietojamā mapē
process.
Es vēl neesmu izveidojis koplietojamu mapi, tāpēc nevaru to atkļūdot, bet tas ir vienkāršs kods, tāpēc es pagaidām vienkārši izveidošu programmu.
ASP.NET Core projekts var būt jebkura veida, bet šajā gadījumā es izmantoju Razor Pages.
Index.cshtml.cs
un pievienojiet to, kas notiek, noklikšķinot uz pogas.
Servera nosaukums ir rakstīts tieši, bet, lūdzu, pielāgojiet to labi faktiskajā darbībā.
Dažos gadījumos koplietojamā mape var nebūt pieejama, tāpēc tā ir iekļauta izmēģināšanas procesā.
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
ir poga un ziņojums.
@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>
@* ここまで追加 *@
Kad esat izveidojis programmu, izveidojiet failu, ko izvietot serverī. Šajā gadījumā mēs izmantosim publicētā faila ievietošanas metodi tieši, taču nav svarīgi, kuru metodi izmantojat. Turklāt programmas izkārtojums nav šī padoma būtība, tāpēc tas ir uzskaitīts vienkāršotā veidā.
Pievienojiet publicēšanas konfigurāciju.
Mainiet iestatījumus.
Iestatījumi tiek mainīti, kā parādīts attēlā. Tas arī nav īpaši saistīts ar šī laika mērķi, tāpēc, lūdzu, iestatiet to atbilstoši savai videi.
Publicējiet programmu.
Pēc programmas publicēšanas noklikšķiniet uz saites "Mērķa atrašanās vieta", un tiks atvērta mape ar failiem, kurus vēlaties ievietot.
Koplietojamu mapju servera izveide
Lietotāja izveide
Parasti, ja serveris ir atšķirīgs, katrā serverī izveidotais lietotājs tiek iekšēji uzskatīts par pilnīgi atšķirīgu lietotāju. Izveidojot failu ar tādu pašu lietotājvārdu un paroli, varat izlaist Windows autentifikāciju uz citu serveri. Šoreiz mēs to izmantosim, lai piekļūtu koplietotajai mapei citā serverī.
Starp citu, ja jums ir darīšana ar serveriem un kontiem domēnā, piemēram, Active Directory, jūs varat iestatīt abus serverus ar šo kontu, kas zināmā mērā vienkāršo konfigurāciju.
Lietotāja izveides procedūra nav detalizēti aprakstīta.
SharedUser
Šajā gadījumā mēs to izveidosim ar nosaukumu .
Tā kā šis lietotājs nedarbojas ekrānā vai nemaina iestatījumus, paroli nevar mainīt.
Ja atstājat noklusējumu, varat pieteikties ar šo lietotāju ar Remote Desktop utt., Tāpēc, lūdzu, noņemiet no grupas Users
.
Koplietojamas mapes izveide
Nav svarīgi, kur jūs to izveidojat. Tas ir tāpēc, ka citiem serveriem nerūp fiziskās mapes atrašanās vieta.
Šajā gadījumā mēs izveidosim mapi, kas nosaukta tieši zem SharedFolder
C diska, un kopīgosim to.
Atveriet rekvizītus un konfigurējiet koplietošanas iestatījumus.
Koplietojamās mapes nosaukumam jābūt SharedFolder
. Šis nosaukums būs redzams citiem serveriem.
Pievienojiet SharedUser
atļaujas.
Everyone
Dzēst esošo .
Apstipriniet ar atļauju "Mainīt".
Tā kā mums ir tikai pievienotas atļaujas, kurām var piekļūt no ārpuses, mēs to iestatīsim iekšēji SharedUser
, lai varētu darboties šajā mapē.
Apstipriniet ar atļauju "Mainīt".
Izveidojiet failu, lai pārbaudītu darbību.
Tas ir labi, ja varat piekļūt pārlūkprogrammā Explorer no \\<サーバー名>\
cita datora, pieteiktiesSharedUser
ar , un skatīt failu.
Lietojumprogrammu servera izveide
IIS instalēšana
Pašlaik instalējiet to pēc noklusējuma no servera pārvaldnieka. Es neiedziļināšos procedūras detaļās.
Papildu funkcijas nav nepieciešamas.
Šobrīd nav nepieciešami papildu IIS pakalpojumi.
ASP.NET Core Runtime hostinga paketes instalēšana
Tā kā mēs izmantojam ASP.NET Core 6, mums attiecīgi jāinstalē izpildlaiks. Lejupielādējiet to no šī URL:
Lai palaistu ASP.NET Core IIS, jums ir nepieciešams kaut kas, ko sauc par "Hostinga paketi". Lejupielādējiet "Hostinga paketi" no ASP.NET Core Runtime.
Pēc lejupielādes palaidiet to serverī.
Izpildiet vedni, lai to instalētu.
Tīmekļa lietojumprogrammu izveide un izvietošana
Programmā Windows Administratīvie rīki atveriet interneta informācijas pakalpojumu (IIS) pārvaldnieku.
Jūs varat izmantot "Noklusējuma vietni", kāda tā ir, bet šoreiz mēs izveidosim jaunu vietni. Noklusējuma vietne tiek startēta automātiski, tāpēc, lūdzu, pārtrauciet tās darbību.
Izveidojiet jaunu Web vietu.
Šoreiz vietnes nosaukums ir SharedFolderAccess
, bet tam nav nozīmes.
Lietojumprogrammu pūls tiek automātiski ģenerēts jaunajai vietnei.
Izveidojiet un norādiet mapi pēc savas izvēles, kurā vēlaties novietot programmu.
Porta 80 apzīmējums ir "Noklusējuma vietne", un jūs redzēsit brīdinājumu, bet varat to ignorēt, ja tas jau nedarbojas.
Tas ir izveidots.
Atveriet tīmekļa vietnē norādīto mapi programmā Windows Explorer un kopējiet un novietojiet visas publicētās programmas tādas, kādas tās ir.
Atveriet lapu no IIS saites un pārbaudiet, vai tiek parādīts ekrāns. Vispirms varat atvērt tīmekļa pārlūkprogrammu un tieši ievadīt vietrādi URL.
Starp citu, pat ja jūs noklikšķināt uz pogas šajā stāvoklī, jūs saņemsiet kļūdu, jo atļaujas iestatījums vēl nav pabeigts.
Lietotāja izveide
Lietojumprogrammu serverī izveidojiet tādu pašu lietotāju SharedUser
kā koplietojamo mapju serverī. Pārliecinieties, ka sakrīt arī jūsu paroles. Soļi ir tieši tādi paši.
Lietojumprogrammu pūla atļauju maiņa
Tīmekļa programmu piekļuvi nosaka lietojumprogrammu pūls.
Pēc noklusējuma tai ir tikai ApplicationPoolIdentity
privilēģijas palaist tīmekļa lietojumprogrammas.
Mainot šo privilēģiju uz SharedUser
, tīmekļa programma var darboties ar jūsu iestatītajām lietotāja privilēģijām.
Tas ļauj tīmekļa programmām SharedUser
piekļūt koplietojamām mapēm pakalpojumā .
Atverot IIS pārvaldnieku, atlasiet Lietojumprogrammu pūli.
Veidojot vietni, tiek automātiski pievienots SharedFolderAccess
, tāpēc ar peles labo pogu noklikšķiniet uz tās un atlasiet "Advanced".
Procesa modelī ir "ID", tāpēc noklikšķiniet uz pogas labajā pusē.
Atlasiet "Pielāgots konts" un noklikšķiniet uz pogas "Iestatījumi".
SharedUser
Ievadiet un apstipriniet savu lietotājvārdu un paroli.
Darbības apstiprinājums
Dodieties uz tīmekļa lapu un noklikšķiniet uz pogas. Ja tiek parādīts teksta faila saturs, tas ir veiksmīgs.
Pārliecinieties, vai koplietojamajā mapē ir arī jauns fails.