by Njål

Nedlasting av .resx filer fra IIS 7.0

En del av IIS sin innebygde sikkerhet nekter brukere å laste ned filer som normalt kjører på serveren. F.eks. så blir *.aspx prosessert på serveren, og output kommer som en html side. Noenganger kan det imidlertid være ønskelig å la brukere laste ned noen av disse filene som brukes av asp.net rammeverket – f.eks. .resx filer (som er xml språkfiler).

Dersom du legger resx filen på website’n din og prøver å åpne den i en nettleser får du en HTTP 404 feil – selv om filen faktisk ligger der.

For å få dette til å fungere i IIS 7.0 så gjør følgende:

  1. Gå inn i IIS Manager, og lag en ny Application Pool. Velg No Managed Code – som .Net Framework version. Vi vil ikke at .net rammeverket skal gjøre noe her, vi er ute etter statisk filserving.
  2. Lag en egen undermappe i websiden din der du vil plassere resx (etc) filene. Høyreklikk på mappen og velg Convert to Application. Under valget om Application Pool, så velg  resxPool (den du lagde i forrige steg).
  3. Velg resx mappen i IIS Manager, og dobbeltklikk på Mime Types i hovedvinduet.  Legg til resx mime type. Dette gjør at IIS skal serve slike filer når en browser ber om det.
  4. I teorien skal det nå fungere, men vi må i gjennom en siste sikkerhetsbarriere. IIS har nemlig noen globale instillinger som sier at den aldri skal serve .resx filer. Denne innstillingen finnes i
    C:Windowssystem32inetsvrconfigApplicationHost.config.

    Lokaliser



    og sett denne til true. (Denne filen må kopieres ut (til f.eks. skrivebordet), editeres her, og kopieres tilbake pga filtilgang)

  5. Du skal nå klare å laste ned resx filer som ligger i mappen du lagde på web serveren.