"La pagina richiesta non può essere pubblicata a causa della configurazione dell'estensione." messaggio di errore


272

Ricevo questo messaggio di errore quando provo a eseguire la mia applicazione. Non so come risolverlo:

Errore HTTP 404.3 - Non trovato La pagina richiesta non può essere pubblicata a causa della configurazione dell'estensione. Se la pagina è uno script, aggiungi un gestore. Se il file deve essere scaricato, aggiungi una mappa MIME.

Ecco uno screenshot della pagina di errore: testo alternativo

Cosa posso fare per correggere questo errore?


1
il codice sorgente sarebbe più utile piuttosto che la pagina di errore
gsharp

1
Quale parte del codice sorgente dovresti vedere?

1
Dopo aver seguito le istruzioni di cui sopra, anche se si ottiene lo stesso errore, passare attraverso il collegamento seguente e seguire i passaggi Fare clic qui
Raj

Risposte:


170

Utilizzare aspnet_regiis.exe per registrare la versione di .NET framework in uso.

Questo è un problema comune e si verifica quando IIS è installato dopo VS o .NET framework.

Nota: per gli utenti di Windows 8/10, vedere di seguito l'altra risposta di JohnOpincar . E anche il commento / suggerimento di Kevin Brydon.


11
È un dato di fatto che ho installato prima Visual Studio e poi IIS. Attualmente sto eseguendo il comando "aspnet_regiis.exe -i". Speriamo che questo risolva l'errore.

5
Ha funzionato anche per me quando ho riscontrato questo errore durante il tentativo di accedere a un servizio WCF .svc.
atwayway

Nota: per gli utenti di Windows 8 vedere l'altra risposta di JohnOpincar di seguito
KyleK,

+1 Per chiunque lo trovi tramite Ricerca, potrebbe essere più semplice eseguire una riparazione sull'installazione .NET invece di tentare di eseguire aspnet_regiis.exe come percorso di minore resistenza e risolvere il problema. Lo vediamo molto sulle scatole che hanno installato .NET 4.5.2 (tramite Windows Update) prima di installare il ruolo IIS, è un po 'frustrante perché queste scatole mostreranno .NET 4 come opzione nel loro pool di app, ma se l'applicazione richiede .NET 4.5 come la nostra non funzionerà con il messaggio sopra riportato.
Aolszowka,

246

In Windows 8/10, devi usare

  • Apri il Pannello di controllo →
  • Programmi e funzionalità →
  • Attiva o disattiva le funzionalità di Windows →
  • Internet Information Services (IIS) →
  • World Wide Web Services →
  • Funzionalità di sviluppo delle applicazioni →
  • Controllare gli elementi appropriati, come abilitare ASP.NET. (ovvero installa la versione appropriata con cui vuoi configurare i tuoi siti Web)

Riferimento: controllare la soluzione di questa domanda come riferimento


217
Ho dovuto controllare .NET Framework 4.5 Advanced Services> WCF Services>HTTP Activation
Kevin Brydon

13
eseguire questo comando da un prompt dei comandi dell'amministratore: "dism / Online / Enable-Feature / FeatureName: WCF-HTTP-Activation / all" oppure "dism / Online / Enable-Feature / FeatureName: WCF-HTTP-Activation45 / all"
Paul Suart,

Proprio quando mi sono abituato a eseguire regiis, microsoft va e lo cambia di nuovo. Beh, almeno questo è molto più semplice: una modifica simile all'installazione di WIF. Ora dovrebbero aggiungere SQL per attivare / disattivare le funzionalità di Windows.
nocarrier

@KevinBrydon - Grazie mille! Il tuo consiglio è stato molto utile per risolvere il problema su Windows 2012 R2.
Amil Waduwawara,

In Windows Server 2012 R2, abilitare "Attivazione HTTP" ha funzionato per me.
Dhanuka777,

117

L'ho risolto sul mio Windows 10:

  1. Vai a Pannello di controllo - Programmi e funzionalità - Attiva o disattiva le funzionalità di Windows.

  2. Selezionare Servizi avanzati .NET Framework 4.6 - Servizi WCF

  3. Controlla l'attivazione HTTP.

  4. Ok fatto.


5
Funziona per me su Windows 10! Grazie!
Sergey Malyutin,

1
Funziona anche con me per la vittoria 8.1
Qerts

Ha funzionato su Win10 iis7
noCodeMonkeys

Funziona dopo l'aggiornamento a Windows 1709 e la necessità di reinstallare il mio IIS
garrettendi il

Funziona perfettamente per me. Soluzione ideale se stai ottenendo "Questo errore si verifica quando l'estensione del file dell'URL richiesto è per un tipo MIME che non è configurato sul server"
eranda.del

84

Nel mio caso avevo bisogno di aggiungere tipi MIME per ogni estensione di file che volevo servire per la configurazione web:

<system.webServer>
    <staticContent>
      <mimeMap fileExtension=".shp" mimeType="application/octet-stream" />
      <mimeMap fileExtension=".dbf" mimeType="application/octet-stream" />
      <mimeMap fileExtension=".kml" mimeType="text/xml" />
    </staticContent>
    ...
</system.webServer>

2
1+ è risolto il mio problema ... ho cercato di caricare l' .jsone mi è stato continuo a ricevere l'errore OP e alla fine ho fine-up aggiungendo il mimeMapmio web.config e ha risolto il problema
Nick Kahn

Devo aggiungere il tipo MIME anche per il file asmx?
Shilpa Soni,

I file asmx di @ShilpaSoni sono file server asp.net (non contenuto statico). quindi non puoi e non devi scaricarli dal client.
Mahmoodvcs,

1
Ed ecco una mappa di estensioni di file per il loro mimeType appropriato, trovato da questa domanda SO
The Red Pea,

21

Nel caso in cui ciò aiuti qualcuno, ho riscontrato questo errore durante il tentativo di eseguire aspnet_regiis.exe:

Operazione non riuscita con 0x8007000B

Tentativo di caricare un programma con un formato errato

A quanto pare, il server stava eseguendo il 2008 a 64 bit e stavo cercando di eseguire la versione a 32 bit dell'utilità. L'esecuzione della versione trovata in \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 ha risolto il problema.

c:\Windows\Microsoft.NET\Framework64\v2.0.50727>aspnet_regiis.exe -i

7

Ho appena avuto la stessa situazione con il mio cliente. Abbiamo il nostro prodotto che installa un sito web. Il programma di installazione configura tutto: il pool IIS, il sito, web.config, ecc.

Abbiamo installato un altro sito Web utilizzando il nostro programma di installazione. Abbiamo inserito gli stessi parametri, quindi web.configs è risultato essere lo stesso in entrambi i siti.

Tuttavia, il sito appena installato ha funzionato bene, mentre quello vecchio no. Quindi ho aperto 2 finestre di Gestione IIS e ho iniziato a confrontare la differenza nelle impostazioni del sito Web. E ho trovato un problema.

Qualcuno ha eliminato tutte le mappature dei gestori con il vecchio sito. Se vai su "Mapping gestori", dovresti vedere aspx, asmx e altre estensioni e nomi dei gestori. Quindi, nel vecchio sito mancavano tutti quei documenti.

Quindi, suggerirei prima di controllare i "Mapping dei gestori" - ci devono essere molti record lì. Crea un nuovo sito web e confronta per sapere quanti dovrebbero esserci.

Chi li ha cancellati, una persona o un altro programma, non ne ho idea. Se qualcuno può dire se esiste qualche applicazione di tracciamento che direbbe che il dominio dell'utente \ john stava modificando il sito Web alla data "07.03.2012 12:34" sarebbe utile.



6

Ho risolto il mio problema sul server Windows 2012 installando TUTTE le funzionalità WCF.

A) Server Manager> Gestisci [collegamento in alto a sinistra]> Aggiungi ruoli e funzionalità

B) In Funzionalità> Funzionalità .Net Framework 4.5> Servizi WCF

C) Controllare (abilitare) le funzionalità. Ho controllato tutto.

D) Installa


2
Ho controllato solo l'attivazione HTTP e l'attivazione TCP e ha funzionato per me. Grazie lo stesso!
Aleksei Mialkin,

6

L'esecuzione di Windows Server 2008 R2 a 64 bit e .net framework 4.5, ha eseguito questo comando da questa posizione e ha avuto esito positivo:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis -i

produzione:

Microsoft (R) ASP.NET RegIIS version 4.0.30319.0
Administration utility to install and uninstall ASP.NET on the local machine.
Copyright (C) Microsoft Corporation.  All rights reserved.
Start installing ASP.NET (4.0.30319.0).
.....
Finished installing ASP.NET (4.0.30319.0).

3

Come accennato da @Mahmoodvcs, mi è stato richiesto di impostare / aggiungere tipi MIME per l'estensione di file che avevo bisogno di ospitare / scaricare direttamente, in questo caso è un file di dump di Heroku (backup del database di postgres), quindi per impostare un server IIS pubblico in cui puoi scaricare questi file senza richiedere bucket AWS S3 o condivisioni HTTP come dropbox, questa è un'opzione eccezionale!

<staticContent>
  <mimeMap fileExtension=".dump" mimeType="application/octet-stream" />
</staticContent>



2

Anch'io ho avuto questo errore, su Windows Server 2008 IIS 7, non avevo installato Visual Studio, quindi una reinstallazione / riparazione di .NET 4.0 ha funzionato.


1

Per aggiungere un'estensione da pubblicare in IIS segui -

  1. Apri Gestione IIS e passa al livello che desideri gestire.
  2. In Visualizzazione funzionalità, fai doppio clic su Tipi MIME.
  3. Nel riquadro Azioni, fai clic su Aggiungi.
  4. Nella finestra di dialogo Aggiungi tipo MIME, digitare un'estensione di file nella casella di testo Estensione nome file. ... Digitare un tipo MIME
  5. nella casella di testo tipo MIME.
  6. Clicca OK.

1
Ho provato questa soluzione nel caso di .ts (Type Script Files) che devi dichiarare nei campi Typescript di tipo MIME (.ts) Uso text / x.typescript come tipo mime
freedeveloper


0

Verificare che il pool di applicazioni in IIS (nel caso di IIS7 o versione successiva) sia selezionato come integrato. In questo caso, probabilmente passare a Classic può risolvere questo problema.


0

Relativo a Server 2016, dovrei aggiungere:

  1. Esegui questo comando: aspnet_regiis -lvda questa directory: C:\Windows\Microsoft.NET\Framework\v2.0.50727\ ti dà la migliore visione di ciò che sta succedendo

  2. Su Server 2016, l'installazione di .net e iis fuori sequenza non sembra essere un problema.

  3. Ciò che è più probabile che sia un problema su Server 2016 è semplicemente che asp.net non è installato sul computer.


0

Per Windows Server 2016

  1. Server ManagerForma aperta
  2. Manage -> Add Roles and Features
  3. Avanti fino alla Featurespagina
  4. Controlla la WCF Servicesfunzione con tutte le funzionalità secondarie
  5. Next e Install

0

Applicazione PHP 7.3 IIS su Windows Server 2012 R2

Questo è stato un processo in due fasi per me.

1) Abilitare i servizi WCF - con un riavvio del server

2) Aggiungi una mappatura del modulo FASTCGI

1)

Vai a Server Manager> Aggiungi ruoli e funzionalità Seleziona il tuo server dal pool di server Vai a Funzionalità> Servizi WCF Ho selezionato tutte le categorie quindi installate

2)

Andare su IIS> selezionato il sito Nel riquadro centrale selezionare Mapping gestori Nel riquadro a destra selezionare Aggiungi mappature modulo

All'interno della finestra di modifica:

Percorso richiesta: * .php

Modulo: FastCgimodule

Eseguibile: ho cercato php-cgi.exe nella mia cartella PHP

Nome: PHP7.3

Ora che ci penso. Potrebbe esserci un modo per aggiungere questo mapping dei gestori all'interno della configurazione Web, quindi se si esegue la migrazione del sito su un altro server non è necessario aggiungere più volte questo mapping.

EDIT: Eccolo qui. Aggiungi questo alla sezione della configurazione web.

<add name="PHP-FastCGI" verb="*" 
  path="*.php" 
  modules="FastCgiModule"
  scriptProcessor="c:\php\php-cgi.exe" 
  resourceType="Either" />


0

Se stai provando a visualizzare un file senza estensione, ciò che ha funzionato per me è stato l'aggiunta di un MIME Type: Estensione nome file : . Tipo MIME :text/plain

Ciò potrebbe avere alcune implicazioni MVC, soprattutto se si Static File Handlerè al di sopra dei Extensionless...gestori (sotto IIS/ Handler Mappings) ma potrebbe essere un problema quando è necessario solo temporaneamente, come l'attivazione di certificati SSL.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.