Mengakses folder kongsian pada pelayan lain daripada aplikasi Teras ASP.NET (IIS, tetapan kolam aplikasi)

Laman dikemaskini :
Tarikh penciptaan halaman :

Persekitaran pengesahan operasi

Visual Studio
  • Visual Studio 2022
ASP.NET Teras
  • 6 (Halaman Razpr)
Pelayan Windows
  • 2022 (Keperluan Sistem Teras ASP.NET)
  • 2019 (Pelayan Penggunaan Folder Kongsian)
IIS
  • 10.0

Persekitaran operasi

Saya tidak mengujinya dalam segala-galanya, tetapi ia harus berfungsi untuk sebahagian besar.

Visual Studio
  • Apa sahaja yang boleh membangunkan projek Teras ASP.NET atau ASP.NET
ASP.NET Teras
  • Sebarang versi (MVC, Halaman Cukur, API)
ASP.NET
  • Sebarang versi boleh diterima
Pelayan Windows
  • Windows Server 2008 atau lebih baru
IIS
  • 7.0 atau lebih baru

prasyarat

  • ASP.NET Aplikasi teras bertujuan untuk dijalankan di IIS. Pelayan web lain tidak akan dapat melaksanakan kandungan petua ini

Persekitaran

Ia disahkan dalam persekitaran berikut.

Tujuan penggunaan PC dan pelayan
Windows 11 (Tempatan) Persekitaran untuk membangunkan program. Tidak relevan dengan tujuan artikel ini
SV2022Test Persekitaran yang menjalankan IIS dan ASP.NET Core. Akses folder kongsian SV2019Test dari sini
SV2019Test Pelayan dengan folder kongsian

Di samping itu, pelbagai tetapan adalah seperti berikut.

Nilai Nama Parameter
Akses Nama Pengguna Pengguna Dikongsi
Nama Folder Kongsi Folder Kongsian

Buat program untuk membaca dan menulis fail daripada folder kongsian daripada aplikasi Teras ASP.NET

Semasa Mr./Ms. tarik, hanya klik butang,

  • Muatkan fail dalam folder kongsian dan paparkannya pada skrin
  • Tulis fail baru ke folder kongsian

Proses.

Saya belum lagi mencipta folder kongsian, jadi saya tidak boleh menyahpepijatnya, tetapi ia adalah kod mudah, jadi saya hanya akan membuat program buat masa ini.

ASP.NET Projek teras boleh menjadi jenis apa pun, tetapi dalam kes ini, saya menggunakan Halaman Cukur.

Index.cshtml.cs dan tambah apa yang berlaku apabila butang diklik. Nama pelayan ditulis secara langsung, tetapi sila sesuaikannya dengan baik dalam operasi sebenar. Dalam sesetengah kes, folder kongsian mungkin tidak boleh diakses, jadi ia disertakan dalam tangkapan cuba.

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 mempunyai butang dan mesej.

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

Sebaik sahaja anda telah mencipta program, cipta fail untuk digunakan ke pelayan. Dalam kes ini, kami akan menggunakan kaedah meletakkan fail yang diterbitkan secara langsung, tetapi tidak kira kaedah yang anda gunakan. Di samping itu, susunan program bukanlah intipati petua ini, jadi ia disenaraikan dengan cara yang mudah.

Tambah konfigurasi penerbitan.

Ubah seting.

Seting diubah seperti yang ditunjukkan dalam rajah. Ini juga tidak berkaitan dengan tujuan kali ini, jadi sila tetapkannya mengikut persekitaran anda.

Terbitkan program ini.

Selepas menerbitkan program, klik pada pautan "Lokasi Sasaran" dan folder dengan fail yang ingin anda letakkan akan dibuka.

Membina pelayan folder kongsian

Buat pengguna

Biasanya, jika pelayan berbeza, pengguna yang dibuat pada setiap pelayan dianggap secara dalaman sebagai pengguna yang sama sekali berbeza. Dengan mencipta fail dengan nama pengguna dan kata laluan yang sama, anda boleh melangkau pengesahan Windows ke pelayan lain. Kali ini kami akan menggunakan ini untuk mengakses folder kongsian pada pelayan lain.

Dengan cara ini, jika anda berurusan dengan pelayan dan akaun dalam domain seperti Active Directory, anda boleh menyediakan kedua-dua pelayan dengan akaun itu, yang memudahkan konfigurasi sedikit sebanyak.

Prosedur untuk membuat pengguna tidak diterangkan secara terperinci.

SharedUser Dalam kes ini, kami akan menciptanya dengan nama . Oleh kerana pengguna ini tidak mengendalikan skrin atau menukar tetapan, kata laluan tidak boleh diubah.

Jika anda meninggalkan lalai, anda boleh log masuk dengan pengguna ini dengan Desktop Jauh, dan lain-lain, jadi sila alih keluar dari kumpulan Users .

Mencipta Folder Kongsian

Tidak kira di mana anda menciptanya. Ini kerana pelayan lain tidak peduli dengan lokasi folder fizikal. Dalam kes ini, kami akan mencipta folder yang dinamakan terus di bawah SharedFolder pemacu C dan berkongsinya.

Buka sifat dan konfigurasikan seting perkongsian.

Nama folder kongsian hendaklah SharedFolder . Nama ini akan dapat dilihat oleh pelayan lain. Tambah SharedUser dalam keizinan.

Everyone Padamkan yang sedia ada .

Sahkan dengan kebenaran "Tukar".

Oleh kerana kami hanya menambah kebenaran yang boleh diakses dari luar, kami akan menetapkannya secara SharedUser dalaman supaya boleh beroperasi dalam folder ini.

Sahkan dengan kebenaran "Tukar".

Buat fail untuk menyemak operasi.

Tidak mengapa jika anda boleh mengakses dalam Explorer dari \\<サーバー名>\ PC lain, logSharedUser masuk dengan , dan melihat fail.

Membina Pelayan Aplikasi

Memasang IIS

Buat masa ini, pasangkannya secara lalai daripada pengurus pelayan. Saya tidak akan masuk ke butiran prosedur.

Tiada ciri tambahan diperlukan.

Tiada perkhidmatan IIS tambahan diperlukan pada masa ini.

ASP.NET Pemasangan Himpunan Pengehosan Runtime Teras

Oleh kerana kita menggunakan ASP.NET Core 6, kita perlu memasang masa jalan dengan sewajarnya. Muat turun daripada URL berikut:

Untuk menjalankan ASP.NET Teras dalam IIS, anda memerlukan sesuatu yang dipanggil "Hosting Bundle". Muat turun "Hosting Bundle" dari ASP.NET Core Runtime.

Setelah dimuat turun, jalankannya pada pelayan.

Ikuti bestari untuk memasangnya.

Mencipta dan Menggunakan Aplikasi Web

Daripada Alat Pentadbiran Windows, buka Pengurus Perkhidmatan Maklumat Internet (IIS).

Anda boleh menggunakan "Laman Web Lalai" seperti sedia ada, tetapi kali ini kami akan membuat laman web baru. Laman Web Lalai dimulakan secara automatik, jadi sila hentikannya.

Buat laman Web baru.

Kali ini, nama SharedFolderAccess laman web adalah , tetapi tidak mengapa.

Kumpulan aplikasi dijana secara automatik untuk tapak baru.

Buat dan tentukan folder pilihan anda di mana anda mahu meletakkan program ini.

Port 80 dilabelkan "Laman Web Lalai" dan anda akan melihat amaran, tetapi anda boleh mengabaikannya jika sudah turun.

Ia telah dicipta.

Buka folder yang ditentukan dalam laman Web dalam Windows Explorer, dan salin dan letakkan semua program yang diterbitkan seperti sedia ada.

Buka halaman daripada pautan IIS dan lihat sama ada skrin muncul. Anda boleh membuka penyemak imbas web terlebih dahulu dan masukkan terus URL.

Dengan cara ini, walaupun anda mengklik butang dalam keadaan ini, anda akan mendapat ralat kerana tetapan kebenaran belum selesai lagi.

Buat pengguna

Buat pengguna SharedUser yang sama pada pelayan aplikasi seperti pada pelayan folder kongsian. Pastikan kata laluan anda juga sepadan. Langkah-langkahnya sama.

Mengubah Kebenaran Kolam Aplikasi

Akses melalui program Web ditentukan oleh kumpulan aplikasi. Secara lalai, ia hanya ApplicationPoolIdentity mempunyai keistimewaan untuk menjalankan aplikasi web.

Dengan menukar keistimewaan ini kepada SharedUser , program web boleh beroperasi dengan keistimewaan pengguna yang telah anda tetapkan. Ini membolehkan program SharedUser web mengakses folder kongsian dalam .

Apabila anda membuka Pengurus IIS, pilih Kolam Aplikasi.

Terdapat ditambah secara automatik SharedFolderAccess apabila anda membuat laman web, jadi klik kanan padanya dan pilih "Lanjutan".

Terdapat "ID" dalam model proses, jadi klik butang di sebelah kanan.

Pilih "Akaun Tersuai" dan klik butang "Tetapan".

SharedUser Masukkan dan sahkan nama pengguna dan kata laluan anda.

Pengesahan operasi

Pergi ke halaman web dan klik pada butang. Jika kandungan fail teks dipaparkan, ia berjaya.

Pastikan anda juga mempunyai fail baru dalam folder kongsian.