Mengakses folder bersama di server lain dari aplikasi ASP.NET Core (IIS, pengaturan kumpulan aplikasi)

Halaman Diperbarui :
Tanggal pembuatan halaman :

Lingkungan verifikasi operasi

Visual Studio
  • Visual Studio 2022
ASP.NET Inti
  • 6 (Halaman Razpr)
Windows Server
  • 2022 (ASP.NET Persyaratan Sistem Inti)
  • 2019 (Server Penyebaran Folder Bersama)
IIS
  • 10.0

Lingkungan operasi

Saya belum mengujinya dalam segala hal, tetapi sebagian besar harus berhasil.

Visual Studio
  • Apa pun yang dapat mengembangkan proyek ASP.NET atau ASP.NET Core
ASP.NET Inti
  • Versi apa pun (MVC, Razor Pages, API)
ASP.NET
  • Versi apa pun dapat diterima
Windows Server
  • Windows Server 2008 atau yang lebih baru
IIS
  • 7.0 atau yang lebih baru

Prasyarat

  • ASP.NET Aplikasi inti dimaksudkan untuk berjalan di IIS. Server web lain tidak akan dapat menerapkan isi tips ini

lingkungan

Ini diverifikasi di lingkungan berikut.

Tujuan penggunaan PC dan server
Windows 11 (Lokal) Lingkungan untuk mengembangkan program. Tidak relevan dengan tujuan artikel ini
SV2022Tes Lingkungan yang menjalankan IIS dan ASP.NET Core. Akses folder bersama SV2019Test dari sini
SV2019Uji Server dengan folder bersama

Selain itu, berbagai pengaturan adalah sebagai berikut.

Nilai Nama Parameter
Akses Nama Pengguna Pengguna Bersama
Nama Folder Bersama Folder Bersama

Membuat program untuk membaca dan menulis file dari folder bersama dari aplikasi ASP.NET Core

Sebagai tarikan Mr./Ms., cukup klik tombol,

  • Muat file dalam folder bersama dan tampilkan di layar
  • Menulis file baru ke folder bersama

proses.

Saya belum membuat folder bersama, jadi saya tidak dapat men-debugnya, tetapi ini adalah kode sederhana, jadi saya hanya akan membuat program untuk saat ini.

ASP.NET Proyek inti dapat berupa jenis apa saja, tetapi dalam kasus ini, saya menggunakan Razor Pages.

Index.cshtml.cs dan tambahkan apa yang terjadi ketika tombol diklik. Nama server ditulis secara langsung, tetapi harap sesuaikan dengan baik dalam operasi sebenarnya. Dalam beberapa kasus, folder bersama mungkin tidak dapat diakses, sehingga terlampir dalam 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 memiliki tombol dan pesan.

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

Setelah Anda membuat program, buat file untuk disebarkan ke server. Dalam hal ini, kami akan menggunakan metode menempatkan file yang diterbitkan secara langsung, tetapi tidak masalah metode apa yang Anda gunakan. Selain itu, pengaturan program bukanlah inti dari tip ini, sehingga terdaftar dengan cara yang disederhanakan.

Tambahkan konfigurasi penerbitan.

Ubah pengaturan.

Pengaturan diubah seperti yang ditunjukkan pada gambar. Ini juga tidak terlalu terkait dengan tujuan saat ini, jadi harap atur sesuai dengan lingkungan Anda.

Publikasikan program.

Setelah menerbitkan program, klik tautan "Lokasi Target" dan folder dengan file yang ingin Anda tempatkan akan terbuka.

Membangun Server Folder Bersama

Membuat pengguna

Biasanya, jika server berbeda, pengguna yang dibuat di setiap server secara internal diperlakukan sebagai pengguna yang sama sekali berbeda. Dengan membuat file dengan nama pengguna dan kata sandi yang sama, Anda dapat melewati otentikasi Windows ke server lain. Kali ini kita akan menggunakan ini untuk mengakses folder bersama di server lain.

Omong-omong, jika Anda berurusan dengan server dan akun di domain seperti Active Directory, Anda dapat mengatur kedua server dengan akun itu, yang menyederhanakan konfigurasi sampai batas tertentu.

Prosedur untuk membuat pengguna tidak dijelaskan secara rinci.

SharedUser Dalam hal ini, kita akan membuatnya dengan nama . Karena pengguna ini tidak mengoperasikan layar atau mengubah pengaturan, kata sandi tidak dapat diubah.

Jika Anda meninggalkan default, Anda dapat masuk dengan pengguna ini dengan Remote Desktop, dll., Jadi harap hapus dari grup Users .

Membuat Folder Bersama

Tidak masalah di mana Anda membuatnya. Ini karena server lain tidak peduli dengan lokasi folder fisik. Dalam hal ini, kami akan membuat folder bernama langsung di bawah SharedFolder drive C dan membagikannya.

Buka properti dan konfigurasikan pengaturan berbagi.

Nama folder bersama harus SharedFolder . Nama ini akan terlihat oleh server lain. Tambahkan SharedUser izin.

Everyone Hapus file .

Konfirmasikan dengan izin "Ubah".

Karena kami hanya menambahkan izin yang dapat diakses dari luar, kami akan mengaturnya secara SharedUser internal sehingga dapat beroperasi di folder ini.

Konfirmasikan dengan izin "Ubah".

Buat file untuk memeriksa operasi.

Tidak apa-apa jika Anda dapat mengakses Explorer dari \\<サーバー名>\ PC lain, masukSharedUser dengan , dan melihat file.

Membangun Server Aplikasi

Menginstal IIS

Untuk saat ini, instal secara default dari manajer server. Saya tidak akan membahas detail prosedurnya.

Tidak diperlukan fitur tambahan.

Tidak ada layanan IIS tambahan yang diperlukan saat ini.

ASP.NET Instalasi Paket Hosting Runtime Inti

Karena kita menggunakan ASP.NET Core 6, kita perlu menginstal runtime yang sesuai. Unduh dari URL berikut:

Untuk menjalankan ASP.NET Core di IIS, Anda memerlukan sesuatu yang disebut "Hosting Bundle". Unduh "Paket Hosting" dari ASP.NET Core Runtime.

Setelah diunduh, jalankan di server.

Ikuti wizard untuk menginstalnya.

Membuat dan Menyebarkan Aplikasi Web

Dari Alat administratif Windows, buka Manajer Layanan Informasi Internet (IIS).

Anda dapat menggunakan "Situs Web Default" apa adanya, tetapi kali ini kami akan membuat situs baru. Situs Web Default secara otomatis dimulai, jadi tolong hentikan.

Membuat situs Web baru.

Kali ini, nama situsnya adalah SharedFolderAccess , tetapi itu tidak masalah.

Kumpulan aplikasi dibuat secara otomatis untuk situs baru.

Buat dan tentukan folder pilihan Anda di mana Anda ingin menempatkan program.

Port 80 diberi label "Situs Web Default" dan Anda akan melihat peringatan, tetapi Anda dapat mengabaikannya jika sudah turun.

Itu telah dibuat.

Buka folder yang ditentukan di situs Web di Windows Explorer, dan salin dan tempatkan semua program yang diterbitkan sebagaimana adanya.

Buka halaman dari tautan IIS dan lihat apakah layar muncul. Anda dapat membuka browser web terlebih dahulu dan memasukkan URL secara langsung.

Omong-omong, bahkan jika Anda mengklik tombol dalam keadaan ini, Anda akan mendapatkan kesalahan karena pengaturan izin belum selesai.

Membuat pengguna

Buat pengguna SharedUser yang sama di server aplikasi seperti di server folder bersama. Pastikan kata sandi Anda juga cocok. Langkah-langkahnya persis sama.

Mengubah Izin Kumpulan Aplikasi

Akses oleh program Web ditentukan oleh pool aplikasi. Secara default, ia hanya ApplicationPoolIdentity memiliki hak istimewa untuk menjalankan aplikasi web.

Dengan mengubah hak istimewa ini menjadi SharedUser , program web dapat beroperasi dengan hak istimewa pengguna yang telah Anda tetapkan. Hal ini memungkinkan program SharedUser web untuk mengakses folder bersama di .

Ketika Anda membuka Manajer IIS, pilih Kumpulan Aplikasi.

Ada yang ditambahkan SharedFolderAccess secara otomatis saat Anda membuat situs web, jadi klik kanan padanya dan pilih "Advanced".

Ada "ID" dalam model proses, jadi klik tombol di sebelah kanan.

Pilih "Akun Kustom" dan klik tombol "Pengaturan".

SharedUser Masukkan dan konfirmasi nama pengguna dan kata sandi Anda.

Konfirmasi operasi

Buka halaman web dan klik tombol. Jika konten file teks ditampilkan, itu berhasil.

Pastikan Anda juga memiliki file baru di folder bersama.