Aracılığıyla paylaş


IIS ile ASP.NET Core Blazor WebAssembly barındırma ve dağıtma

Uyarı

Bu, bu makalenin en son sürümü değildir. Geçerli sürüm için bu makalenin .NET 10 sürümüne bakın.

Uyarı

ASP.NET Core'un bu sürümü artık desteklenmiyor. Daha fazla bilgi için bkz . .NET ve .NET Core Destek İlkesi. Geçerli sürüm için bu makalenin .NET 10 sürümüne bakın.

Bu makale, Blazor WebAssembly'i Internet Information Services (IIS) kullanarak nasıl barındırıp dağıtabileceğinizi açıklar.

IIS, uygulamalar için Blazor yetenekli bir statik dosya sunucusudur. IIS'i Blazor barındırmaya yönelik yapılandırmak için IIS Üzerinde Statik Web Sitesi Oluşturma bölümüne bakın.

Yayımlanan varlıklar, /bin/Release/{TARGET FRAMEWORK}/publish yer tutucusunun hedef çerçeve olduğu bin/Release/{TARGET FRAMEWORK}/browser-wasm/publish veya {TARGET FRAMEWORK} klasöründe oluşturulur. Klasörün içeriğini publish web sunucusunda veya barındırma hizmetinde barındırın.

web.config dosyası

Proje Blazor yayımlandığında, aşağıdaki IIS yapılandırmasıyla bir web.config dosya oluşturulur:

  • MIME türleri
  • HTTP sıkıştırması aşağıdaki MIME türleri için etkinleştirilir:
    • application/octet-stream
    • application/wasm
  • URL Yeniden Yazma Modülü kuralları oluşturulur:
    • Uygulamanın statik varlıklarının (wwwroot/{PATH REQUESTED}) bulunduğu alt dizine hizmet edin.
    • Dosya olmayan varlıklara yönelik isteklerin statik varlıklar klasöründeki (wwwroot/index.html ) uygulamanın varsayılan belgesine yeniden yönlendirilmesi için SPA geri dönüş yönlendirmesi oluşturun.

Bir özel web.config kullanımı

Özel web.config bir dosya kullanmak için:

  1. Özel web.config dosyayı projenin kök klasörüne yerleştirin.
  2. Projeyi yayımlayın. Daha fazla bilgi için bkz . ASP.NET Core'u Blazorbarındırma ve dağıtma.
  1. Özel web.config dosyayı projenin kök klasörüne yerleştirin. Barındırılan Blazor WebAssemblybir çözüm için dosyayı Server projenin klasörüne yerleştirin.
  2. Projeyi yayımlayın. Barındırılan bir Blazor WebAssembly çözüm için, projeden Server çözümü yayınlayın. Daha fazla bilgi için bkz . ASP.NET Core'u Blazorbarındırma ve dağıtma.

SDK'nin web.config yayımlama sırasındaki oluşturma veya dönüştürme işlemi, dosyayı publish klasöründeki yayımlanmış varlıklara taşımaz veya özel web.config dosyanızdaki yapılandırmayı değiştirirse, işlemi tamamen kontrol altına almak için aşağıdaki yaklaşımlardan herhangi birini kullanın.

  • SDK dosyayı oluşturmazsa, örneğin Blazor WebAssembly yer tutucusunun hedef çerçeve olduğu bağımsız bir /bin/Release/{TARGET FRAMEWORK}/publish/wwwroot uygulamada bin/Release/{TARGET FRAMEWORK}/browser-wasm/publish veya {TARGET FRAMEWORK} konumunda olduğu durumlarda, proje dosyasında (<PublishIISAssets>) true özelliğini .csproj olarak ayarlayın. Genellikle tek başına WebAssembly uygulamaları için, özel web.config bir dosyayı taşımak ve dosyanın SDK tarafından dönüştürülmesini önlemek için gereken tek ayar budur.

    <PropertyGroup>
      <PublishIISAssets>true</PublishIISAssets>
    </PropertyGroup>
    
  • Sdk'nın web.config proje dosyasındaki dönüştürmesini devre dışı bırakın (.csproj):

    <PropertyGroup>
      <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled>
    </PropertyGroup>
    
  • Özel bir dosyayı taşımak için proje dosyasına (.csproj) özel web.config bir hedef ekleyin. Aşağıdaki örnekte, özel web.config dosya geliştirici tarafından projenin köküne yerleştirilir. web.config Dosya başka bir yerde bulunuyorsa, dosyanın SourceFiles yolunu belirtin. Aşağıdaki örnek, publish klasörünü $(PublishDir) ile belirtir, ancak özel çıkış konumu için DestinationFolder yolunu belirtir.

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

URL Yeniden Yazma Modülünü Yükleme

URL'leri yeniden yazmak için URL Yeniden Yazma Modülü gereklidir. Modül varsayılan olarak yüklenmez ve Web Sunucusu (IIS) rol hizmeti özelliği olarak yüklenemez. Modülün IIS web sitesinden indirilmesi gerekir. Modülü yüklemek için Web Platformu Yükleyicisi'ni kullanın:

  1. Yerel olarak URL Yeniden Yazma Modülü indirmeleri sayfasına gidin. İngilizce sürüm için WebPI yükleyicisini indirmek için WebPI'yi seçin. Diğer diller için, yükleyiciyi indirmek üzere sunucu (x86/x64) için uygun mimariyi seçin.
  2. Yükleyiciyi sunucuya kopyalayın. Yükleyiciyi çalıştırın. Yükle düğmesini seçin ve lisans koşullarını kabul edin. Yükleme tamamlandıktan sonra sunucunun yeniden başlatılması gerekmez.

Web sitesini yapılandırma

Web sitesinin Fiziksel yolunu uygulamanın klasörüne ayarlayın. Klasör aşağıdakileri içerir:

  • Iis'nin web.config gerekli yeniden yönlendirme kuralları ve dosya içerik türleri de dahil olmak üzere web sitesini yapılandırmak için kullandığı dosya.
  • Uygulamanın statik varlık klasörü.

IIS alt uygulaması olarak barındırma

Tek başına bir uygulama IIS alt uygulaması olarak barındırılıyorsa aşağıdakilerden birini gerçekleştirin:

  • Devralınan ASP.NET Çekirdek Modülü işleyicisini devre dışı bırakın.

    dosyasındaki işleyiciyi kaldırmak için, dosyanın bölümüne bir bölümü ekleyin:

    <handlers>
      <remove name="aspNetCore" />
    </handlers>
    
  • Kök (üst) uygulamanın <system.webServer> bölümünün devralınmasını, içinde <location> olarak ayarlanmış bir inheritInChildApplications öğesi bulunan false kullanarak devre dışı bırakın.

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

    Uyarı

    Kök (üst) uygulamanın <system.webServer> bölümünün devralmayı devre dışı bırakmak, .NET SDK'sı kullanılarak yayımlanan uygulamalar için varsayılan yapılandırmadır.

İşleyiciyi kaldırma veya devralmayı devre dışı bırakma işlemi, uygulamanın temel yolunu yapılandırmaya ek olarak gerçekleştirilir. Uygulamanın temel yolunu uygulamanın index.html dosyasında, IIS'de alt uygulamayı yapılandırırken kullanılan IIS takma adına uyacak şekilde ayarlayın.

ASP.NET Core Blazor uygulama temel yolu'ndaki yönergeleri izleyerek uygulamanın temel yolunu yapılandırın.

Brotli ve Gzip sıkıştırma

Bu bölüm yalnızca tek başına Blazor WebAssembly uygulamalar için geçerlidir.

Bu bölüm yalnızca tek başına Blazor WebAssembly uygulamalar için geçerlidir. Barındırılan Blazor uygulamalar, bu bölümde bağlantılı dosyayı değil, varsayılan ASP.NET Core uygulama web.config dosyasını kullanır.

IIS, web.config aracılığıyla tek başına uygulamalar için Brotli veya Gzip ile sıkıştırılmış Blazor dosyalara hizmet vermek üzere yapılandırılabilir Blazor WebAssembly. Örnek bir yapılandırma dosyası için bkz web.config. .

Aşağıdaki senaryolarda örnek web.config dosyanın ek yapılandırması gerekebilir:

  • Uygulamanın şartnamesi aşağıdakilerden birini gerektirir:
    • Örnek web.config dosya tarafından yapılandırılmamış sıkıştırılmış dosyaların sunulması.
    • Örnek web.config dosya tarafından yapılandırılan sıkıştırılmış dosyaları sıkıştırılmamış biçimde sunma.
  • Sunucunun IIS yapılandırması (örneğin, applicationHost.config) sunucu düzeyinde IIS varsayılanları sağlar. Sunucu düzeyinde yapılandırmaya bağlı olarak, uygulama örnek web.config dosyanın içerdiğinden farklı bir IIS yapılandırması gerektirebilir.

Özel web.config dosyalar hakkında daha fazla bilgi için Özel web.configdosyalar kullanma bölümüne bakın.

Sorun giderme

Web sitesinin yapılandırmasına erişmeye çalışırken bir 500 - İç Sunucu Hatası alınırsa ve IIS Yöneticisi hata oluşturursa, URL Yeniden Yazma Modülünün yüklendiğini onaylayın. Modül yüklenmediğinde, web.config dosya IIS tarafından ayrıştırılamaz. Bu, IIS Yöneticisi'nin web sitesinin yapılandırmasını yüklemesini ve web sitesinin Blazor'nin statik dosyalarını sunmasını engeller.

IIS dağıtımlarında sorun giderme hakkında daha fazla bilgi için bkz. Azure Uygulama Hizmeti ve IIS üzerinde ASP.NET Core sorunlarını giderme.