Prieiga prie bendrinamų aplankų kituose serveriuose iš ASP.NET Core programų (IIS, taikomųjų programų telkinio parametrai)

Puslapis atnaujintas :
Puslapio sukūrimo data :

Veikimo tikrinimo aplinka

Vizualinė studija
  • "Visual Studio 2022"
ASP.NET branduolys
  • 6 ("Razpr" puslapiai)
"Windows" serveris
  • 2022 m. (ASP.NET pagrindiniai sistemos reikalavimai)
  • 2019 m. (bendro naudojimo aplanko diegimo serveris)
IIS
  • 10.0

Darbo aplinka

Aš to neišbandžiau visame kame, bet jis turėtų veikti didžiąja dalimi.

Vizualinė studija
  • Viskas, kas gali sukurti ASP.NET ar ASP.NET pagrindinį projektą
ASP.NET branduolys
  • Bet kuri versija (MVC, "Razor" puslapiai, API)
ASP.NET
  • Bet kuri versija yra priimtina
"Windows" serveris
  • "Windows Server 2008" arba naujesnė versija
IIS
  • 7.0 arba naujesnė versija

Prielaida

  • ASP.NET Pagrindinės programos skirtos veikti IIS. Kiti žiniatinklio serveriai negalės įgyvendinti šių patarimų turinio

Aplinkos

Jis tikrinamas šioje aplinkoje.

Kompiuterių ir serverių naudojimo tikslas
"Windows 11" (vietinis) Programų kūrimo aplinka. Nesusijęs su šio straipsnio tikslu
SV2022Testas Aplinka, kurioje veikia IIS ir ASP.NET branduolys. Pasiekite SV2019Test bendrinamą aplanką iš čia
SV2019Testas Serveriai su bendrai naudojamais aplankais

Be to, įvairūs nustatymai yra tokie.

Parametro pavadinimo reikšmė
Pasiekite vartotojo vardą Bendrinamas naudotojas
Bendro naudojimo aplanko pavadinimas "SharedFolder"

Programos, skirtos failams skaityti ir rašyti iš bendrinamo aplanko, kūrimas iš "ASP.NET Core" programos

Kai ponas /ponia traukia, tiesiog spustelėkite mygtuką,

  • Įkelkite failus į bendrinamą aplanką ir rodykite juos ekrane
  • Naujo failo įrašymas į bendro naudojimo aplanką

procesas.

Dar nesukūriau bendrinamo aplanko, todėl negaliu jo derinti, bet tai paprastas kodas, todėl kol kas tiesiog sukursiu programą.

ASP.NET Pagrindinis projektas gali būti bet kokio tipo, bet šiuo atveju aš naudoju "Razor Pages".

Index.cshtml.cs ir pridėkite, kas nutinka spustelėjus mygtuką. Serverio pavadinimas parašytas tiesiogiai, tačiau gerai jį sureguliuokite realiai veikdami. Kai kuriais atvejais bendrinamas aplankas gali būti nepasiekiamas, todėl jis pridedamas prie bandomojo sugavimo.

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 turi mygtuką ir pranešimą.

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

Sukūrę programą, sukurkite failą, kurį norite įdiegti serveryje. Tokiu atveju mes naudosime paskelbto failo įdėjimo metodą tiesiogiai, tačiau nesvarbu, kurį metodą naudojate. Be to, programos išdėstymas nėra šio patarimo esmė, todėl jis pateikiamas supaprastintai.

Publikavimo konfigūracijos įtraukimas.

Pakeiskite nustatymus.

Nustatymai keičiami taip, kaip parodyta paveikslėlyje. Tai taip pat nėra ypač susiję su šio laiko tikslu, todėl nustatykite jį pagal savo aplinką.

Publikuokite programą.

Paskelbę programą, spustelėkite nuorodą "Tikslinė vieta" ir atsidarys aplankas su failais, kuriuos norite įdėti.

Bendro naudojimo aplankų serverio kūrimas

Vartotojo kūrimas

Paprastai, jei serveris yra skirtingas, kiekviename serveryje sukurtas vartotojas viduje laikomas visiškai skirtingu vartotoju. Sukūrę failą su tuo pačiu vartotojo vardu ir slaptažodžiu, galite praleisti "Windows" autentifikavimą į kitą serverį. Šį kartą tai naudosime norėdami pasiekti bendrinamą aplanką kitame serveryje.

Beje, jei dirbate su serveriais ir paskyromis tokiame domene kaip "Active Directory", galite nustatyti abu serverius naudodami tą paskyrą, o tai tam tikru mastu supaprastina konfigūraciją.

Vartotojo kūrimo procedūra nėra išsamiai aprašyta.

SharedUser Tokiu atveju sukursime jį pavadinimu . Kadangi šis vartotojas neveikia ekrano ir nekeičia nustatymų, slaptažodžio pakeisti negalima.

Jei paliksite numatytąjį, galite prisijungti naudodami šį vartotoją naudodami nuotolinį darbalaukį ir kt., todėl pašalinkite iš grupės Users .

Bendro naudojimo aplanko kūrimas

Nesvarbu, kur jį sukursite. Taip yra todėl, kad kitiems serveriams nerūpi fizinio aplanko vieta. Tokiu atveju sukursime aplanką, pavadintą tiesiai po SharedFolder C disku, ir bendrinsime jį.

Atidarykite ypatybes ir sukonfigūruokite bendrinimo nustatymus.

Bendro naudojimo aplanko pavadinimas turėtų SharedFolder būti . Šis pavadinimas bus matomas kitiems serveriams. Pridėkite SharedUser leidimus.

Everyone Ištrinkite esamą .

Patvirtinkite leidimu "Keisti".

Kadangi pridėjome tik leidimus, kuriuos galima pasiekti iš išorės, nustatysime jį viduje SharedUser , kad jis galėtų veikti šiame aplanke.

Patvirtinkite leidimu "Keisti".

Sukurkite failą, kad patikrintumėte operaciją.

Gerai, jei galite pasiekti "Explorer" iš \\<サーバー名>\ kito kompiuterio, prisijungtiSharedUser naudodami "" ir peržiūrėti failą.

Taikomųjų programų serverio kūrimas

IIS diegimas

Šiuo metu įdiekite jį pagal numatytuosius nustatymus iš serverio tvarkyklės. Nesigilinsiu į procedūros detales.

Nereikia jokių papildomų funkcijų.

Šiuo metu nereikia jokių papildomų IIS paslaugų.

ASP.NET "Core Runtime Hosting Bundle" diegimas

Kadangi naudojame ASP.NET Core 6, turime atitinkamai įdiegti vykdymo laiką. Atsisiųskite jį iš šio URL:

Norint paleisti ASP.NET Core IIS, jums reikia kažko, vadinamo "Hosting Bundle". Atsisiųskite "Hosting Bundle" iš "ASP.NET Core Runtime".

Atsisiuntę paleiskite jį serveryje.

Vykdykite vedlį, kad jį įdiegtumėte.

Žiniatinklio taikomųjų programų kūrimas ir diegimas

Naudodami "Windows" administravimo įrankius atidarykite informacinių interneto tarnybų (IIS) tvarkytuvą.

Galite naudoti "Numatytąją svetainę" tokią, kokia ji yra, tačiau šį kartą sukursime naują svetainę. Numatytoji svetainė paleidžiama automatiškai, todėl prašome ją sustabdyti.

Sukurkite naują svetainę.

Šį kartą svetainės pavadinimas yra SharedFolderAccess , bet nesvarbu.

Programų telkinys automatiškai sugeneruojamas naujai svetainei.

Sukurkite ir nurodykite pasirinktą aplanką, kuriame norite įdėti programą.

80 prievadas pažymėtas kaip "Numatytoji svetainė" ir pamatysite įspėjimą, tačiau galite jo nepaisyti, jei jis jau neveikia.

Jis buvo sukurtas.

"Windows Explorer" atidarykite aplanką, nurodytą žiniatinklio svetainėje, nukopijuokite ir įdėkite visas publikuotas programas tokias, kokios jos yra.

Atidarykite puslapį naudodami IIS nuorodą ir pažiūrėkite, ar rodomas ekranas. Pirmiausia galite atidaryti žiniatinklio naršyklę ir tiesiogiai įvesti URL.

Beje, net jei spustelėsite mygtuką šioje būsenoje, gausite klaidą, nes leidimo nustatymas dar nebaigtas.

Vartotojo kūrimas

Programos serveryje sukurkite tą patį vartotoją SharedUser kaip ir bendrai naudojamo aplanko serveryje. Įsitikinkite, kad jūsų slaptažodžiai taip pat sutampa. Veiksmai yra lygiai tokie patys.

Taikomųjų programų telkinio teisių keitimas

Prieiga per žiniatinklio programas nustatoma pagal taikomųjų programų telkinį. Pagal numatytuosius nustatymus jis turi tik ApplicationPoolIdentity teises paleisti žiniatinklio programas.

Pakeitus šią teisę į SharedUser , žiniatinklio programa gali veikti su jūsų nustatytomis vartotojo teisėmis. Tai leidžia žiniatinklio programoms SharedUser pasiekti bendrinamus aplankus .

Atidarę IIS tvarkytuvą, pasirinkite Taikomųjų programų telkiniai.

Kuriant svetainę automatiškai pridedama SharedFolderAccess , todėl dešiniuoju pelės mygtuku spustelėkite ją ir pasirinkite "Išplėstinė".

Proceso modelyje yra "ID", todėl spustelėkite dešinėje esantį mygtuką.

Pasirinkite "Tinkinta paskyra" ir spustelėkite mygtuką "Nustatymai".

SharedUser Įveskite ir patvirtinkite savo vartotojo vardą ir slaptažodį.

Operacijos patvirtinimas

Eikite į tinklalapį ir spustelėkite mygtuką. Jei rodomas tekstinio failo turinys, jis sėkmingas.

Įsitikinkite, kad bendrinamame aplanke taip pat turite naują failą.