Tilpasse web.config for ASP.NET 5 (vNext) distribusjoner

stemmer
4

Jeg bruker kpm pack å generere min utplassering, som jeg distribuere til Azure via ftp. Jeg må være i stand til å betjene statiske JSON-filer, så jeg trenger å legge til følgende til min web.config:

<system.webServer>
  <staticContent>
    <mimeMap fileExtension=.json mimeType=text/html />
  </staticContent>
</system.webServer>

Problemet er at kpm pakke genererer web.config, så den eneste måten å oppnå dette på er å legge til config delen til web.config etter at den er generert. Siden jeg gjør automatisert utrulling via ci, ville dette kreve litt innsats. Finnes det en bedre måte å oppnå dette?

Publisert på 29/11/2014 klokken 15:40
kilden bruker
På andre språk...                            


2 svar

stemmer
2

Du bør legge konfigurasjonene til kilden av web.config, i stedet for målet.

Hvis du ikke har en web.config i roten av prosjektet blir pakket inn, kan du opprette en. Deretter legger statisk innhold konfigurasjoner til [project_root] /web.config.

"Kpm pack" vil bevare alle konfigurasjoner i [project_root] /web.config, legge til litt informasjon som trengs av IIS, og deretter skrive det å wwwroot / web.config.

Viktig oppdatering:

En endring ble introdusert i "kpm pack": https://github.com/aspnet/KRuntime/pull/972

Vennligst flytte web.config fra prosjekt roten til kilden til wwwroot.

Kilden for wwwroot mappe kan angis med 'webroot' i project.json ( https://github.com/aspnet/Home/wiki/Project.json-file#webroot ). Du kan også angi den med '--wwwroot alternativet for "kpm pack".

Svarte 04/12/2014 kl. 01:19
kilden bruker

stemmer
0

I ASP.NET Kjerne kan du være i stand til å unngå web.confighelt ved å konfigurere de statiske fil mellomvare alternativer ( StaticFileOptions) i kode, noe som gir en tilpasset FileExtensionContentTypeProvidersom sin ContentTypeProvider:

public void ConfigureServices(IServiceCollection services) 
{
    ...
    services.AddInstance<IContentTypeProvider>(
        new FileExtensionConentTypeProvider(
            new Dictionary<string, string>(
                // Start with the base mappings
                new FileExtensionContentTypeProvider().Mappings,
                // Extend the base dictionary with your custom mappings
                StringComparer.OrdinalIgnoreCase) {
                    { ".json", "text/html" }
                }
            )
        );
    ...
}

public void Configure(
    IApplicationBuilder app, 
    IContentTypeProvider contentTypeProvider)
{
    ...
    app.UseStaticFiles(new StaticFileOptions() {
        ContentTypeProvider = contentTypeProvider
        ...
    });
    ...
}
Svarte 04/05/2016 kl. 05:34
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more