Bagikan melalui


Host dan sebarkan ASP.NET Core Blazor WebAssembly dengan IIS

Nota

Ini bukan versi terbaru dari artikel ini. Untuk rilis saat ini, lihat versi .NET 10 dari artikel ini.

Peringatan

Versi ASP.NET Core ini tidak lagi didukung. Untuk informasi lebih lanjut, lihat Kebijakan Dukungan .NET dan .NET Core . Untuk rilis saat ini, lihat versi .NET 10 dari artikel ini.

Artikel ini menjelaskan cara menghosting dan menyebarkan Blazor WebAssembly menggunakan Internet Information Services (IIS).

IIS adalah server file statis yang unggul untuk aplikasi Blazor. Untuk mengonfigurasi IIS untuk menghosting Blazor, lihat Membangun Situs Web Statis di IIS.

Aset yang diterbitkan dibuat di folder /bin/Release/{TARGET FRAMEWORK}/publish atau bin/Release/{TARGET FRAMEWORK}/browser-wasm/publish, di mana {TARGET FRAMEWORK} adalah placeholder untuk framework target. Menghosting konten folder publish di layanan hosting atau server web.

web.config arsip

Blazor Saat proyek diterbitkan, web.config file dibuat dengan konfigurasi IIS berikut:

  • Jenis MIME
  • Pemadatan HTTP diaktifkan untuk jenis MIME berikut:
    • application/octet-stream
    • application/wasm
  • Aturan Modul Penulisan Ulang URL dibuat:
    • Layani sub-direktori tempat aset statis aplikasi berada (wwwroot/{PATH REQUESTED}).
    • Buat perutean fallback SPA sehingga permintaan untuk aset non-file dialihkan ke dokumen default aplikasi di folder aset statisnya (wwwroot/index.html).

Penggunaan khusus web.config

Untuk menggunakan file kustom web.config :

  1. Tempatkan file kustom web.config di folder akar proyek.
  2. Terbitkan proyek. Untuk informasi selengkapnya, lihat Host dan sebarkan ASP.NET Core Blazor.
  1. Tempatkan file kustom web.config di folder akar proyek. Untuk solusi yang dihosting, tempatkan file di folder proyek.
  2. Terbitkan proyek. Untuk solusi di-hosting, terbitkan solusi dari proyek Blazor WebAssembly. Untuk informasi selengkapnya, lihat Host dan sebarkan ASP.NET Core Blazor.

Jika pembuatan atau transformasi SDK web.config selama penerbitan tidak memindahkan file ke aset yang diterbitkan di publish folder atau memodifikasi konfigurasi kustom dalam file kustom web.config Anda, gunakan salah satu pendekatan berikut sesuai kebutuhan untuk mengambil kontrol penuh atas proses:

  • Jika SDK tidak menghasilkan file, misalnya, dalam aplikasi mandiri di Blazor WebAssembly atau /bin/Release/{TARGET FRAMEWORK}/publish/wwwroot, di mana bin/Release/{TARGET FRAMEWORK}/browser-wasm/publish merupakan placeholder untuk kerangka kerja target, aturlah properti {TARGET FRAMEWORK} ke <PublishIISAssets> di dalam file proyek (true). Biasanya untuk aplikasi WebAssembly mandiri, ini adalah satu-satunya pengaturan yang diperlukan untuk memindahkan file kustom web.config dan mencegah transformasi file oleh SDK.

    <PropertyGroup>
      <PublishIISAssets>true</PublishIISAssets>
    </PropertyGroup>
    
  • Nonaktifkan transformasi SDK web.config dalam file proyek (.csproj):

    <PropertyGroup>
      <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled>
    </PropertyGroup>
    
  • Tambahkan target kustom ke file proyek (.csproj) untuk memindahkan file kustom web.config . Dalam contoh berikut, file kustom web.config ditempatkan oleh pengembang di akar proyek. web.config Jika file berada di tempat lain, tentukan jalur ke file di SourceFiles. Contoh berikut menentukan publish folder dengan $(PublishDir), tetapi menyediakan jalur ke DestinationFolder untuk lokasi output kustom.

    <Target Name="CopyWebConfig" AfterTargets="Publish">
      <Copy SourceFiles="web.config" DestinationFolder="$(PublishDir)" />
    </Target>
    

Menginstal Modul Penulisan Ulang URL

Modul Penulisan Ulang URL diperlukan untuk menulis ulang URL. Modul tidak diinstal secara default, dan tidak tersedia untuk diinstal sebagai fitur layanan peran Server Web (IIS). Modul harus diunduh dari situs web IIS. Gunakan Penginstal Platform Web untuk menginstal modul:

  1. Secara lokal, navigasikan ke halaman unduhan Modul Penulisan Ulang URL. Untuk versi bahasa Inggris, pilih WebPI untuk mengunduh penginstal WebPI. Untuk bahasa lain, pilih arsitektur yang sesuai untuk server (x86/x64) untuk mengunduh alat penginstal.
  2. Salin alat penginstal ke server. Jalankan alat penginstal. Pilih tombol Instal dan terima ketentuan lisensi. Menghidupkan ulang server tidak diperlukan setelah penginstalan selesai.

Mengonfigurasi situs web

Atur jalur Fisik situs web ke folder aplikasi. Folder berisi:

  • File web.config yang digunakan IIS untuk mengonfigurasi situs web, termasuk aturan pengalihan dan jenis konten file yang diperlukan.
  • Folder aset statis aplikasi.

Host sebagai sub-aplikasi IIS

Jika aplikasi mandiri dihosting sebagai sub-aplikasi IIS, lakukan salah satu hal berikut:

  • Nonaktifkan handler Modul inti ASP.NET yang diwariskan.

    Hapus handler di file Blazor yang diterbitkan oleh aplikasi web.config dengan menambahkan bagian <handlers> ke bagian <system.webServer> di dalam file tersebut.

    <handlers>
      <remove name="aspNetCore" />
    </handlers>
    
  • Nonaktifkan pewarisan bagian <system.webServer> dari aplikasi root (induk) dengan menggunakan elemen <location> yang diatur inheritInChildApplications ke false:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <location path="." inheritInChildApplications="false">
        <system.webServer>
          <handlers>
            <add name="aspNetCore" ... />
          </handlers>
          <aspNetCore ... />
        </system.webServer>
      </location>
    </configuration>
    

    Nota

    Menonaktifkan pewarisan bagian aplikasi <system.webServer> root (induk) adalah konfigurasi default untuk aplikasi yang diterbitkan menggunakan .NET SDK.

Menghapus handler atau menonaktifkan pewarisan dilakukan selain mengonfigurasi jalur dasar aplikasi. Atur jalur dasar aplikasi dalam file aplikasi index.html ke alias IIS yang digunakan saat mengonfigurasi sub-aplikasi di IIS.

Konfigurasikan jalur dasar aplikasi dengan mengikuti panduan di jalur dasar aplikasi ASP.NET CoreBlazor.

Kompresi Brotli dan Gzip

Bagian ini hanya berlaku untuk aplikasi mandiri Blazor WebAssembly .

Bagian ini hanya berlaku untuk aplikasi mandiri Blazor WebAssembly . Aplikasi yang dihosting Blazor menggunakan file aplikasi web.config ASP.NET Core default, bukan file yang ditautkan di bagian ini.

IIS dapat dikonfigurasi melalui web.config untuk melayani aset terkompresi Blazor Brotli atau Gzip untuk aplikasi mandiri Blazor WebAssembly . Untuk contoh file konfigurasi, lihat web.config.

Konfigurasi tambahan file contoh web.config mungkin diperlukan dalam skenario berikut:

  • Spesifikasi aplikasi menetapkan salah satu dari opsi berikut:
    • Mengirimkan file terkompresi yang belum dikonfigurasi oleh file contoh web.config.
    • Menyajikan file terkompresi yang dikonfigurasi oleh file contoh web.config dalam format yang tidak dikompresi.
  • Konfigurasi IIS server (misalnya, applicationHost.config) menyediakan default IIS tingkat server. Bergantung pada konfigurasi tingkat server, aplikasi mungkin memerlukan konfigurasi IIS yang berbeda dari apa yang dikandung file contoh web.config .

Untuk informasi selengkapnya tentang file kustom web.config , lihat bagian Penggunaan kustom web.config .

Troubleshooting

Jika 500 - Kesalahan Server Internal diterima dan Manajer IIS melemparkan kesalahan saat mencoba mengakses konfigurasi situs web, konfirmasikan bahwa Modul Penulisan Ulang URL diinstal. Saat modul tidak diinstal, web.config file tidak dapat diurai oleh IIS. Ini mencegah Manajer IIS memuat konfigurasi situs web dan mencegah situs web untuk menyajikan file statis Blazor.

Untuk informasi selengkapnya tentang pemecahan masalah penyebaran ke IIS, lihat Memecahkan masalah ASP.NET Core di Azure App Service dan IIS.