Perché tutti i miei file .axd generano un errore 404 quando sul nostro server di produzione?.axd file generano un errore 404
risposta
È necessario creare un tipo MIME per tale interno in IIS:
per definire un tipo MIME per un'estensione specifica, attenersi alla seguente procedura:
- Aprire il Microsoft Management Console (MMC) , fare clic con il pulsante destro del mouse sul nome del computer locale, quindi fare clic su Proprietà.
- Fare clic su Intestazioni HTTP.
- Fare clic su Tipi MIME.
- Fare clic su Nuovo.
- Nella casella Estensione, digitare l'estensione del nome file desiderata (ad esempio, .axed)
- Nella casella Tipo MIME, digitare application/octet-stream.
- Applicare le nuove impostazioni. Si noti che è necessario riavviare il servizio Pubblicazione sul Web o attendere che il processo di lavoro venga riciclato affinché le modifiche abbiano effetto. In questo esempio, IIS ora serve i file con l'estensione .axed.
No, non è così. Ho la sensazione che il server stia eliminando i parametri di querystring da file .axd e file .asmx come i miei servizi web non funzionano neanche. Qualcuno è a conoscenza di qualcosa che potrebbe impedire questo (non è il verbo mancante dall'estensione in quanto ciò genera un errore diverso) – januszstabik
Quale versione di IIS è in esecuzione? – Alex
Sto pensando che potresti avere un problema con le autorizzazioni? Riesci a vedere qualcos'altro su quel server? .aspx? Nulla? – Alex
Abbiamo avuto errore 500 (non è 404, ma chissà) sul nostro server di produzione qualche tempo fa. Nessuna risorsa di script è stata in grado di caricare.
Il problema era nella differenza di tempo tra i nostri server di sviluppo e di produzione. Erano -7 ore. .NET ha generato un'eccezione a causa del tentativo di utilizzare un "tempo nel futuro" di un assembly con risorse di script incorporate.
La riduzione della cartella {website}/bin/
(in realtà gli assembly "in esso) ha risolto il problema giorno dopo giorno.
Grazie per il suggerimento. Mi piacerebbe testarlo. Quale strumento hai usato per modificare i timestamp? – itslittlejohn
Questo era davvero il problema per noi, e stavamo diventando 404. Ho usato il cambio di date dei file di Nirsoft. – itslittlejohn
È possibile effettuare una richiesta "non valida" che non riesce e quindi controllare i registri eventi del sistema e dell'applicazione del server?
Ci sono diversi problemi intorno axd che possono causare 404 o 500 (come il problema "tempo nel futuro" menzionato da Alex), ma lasciano un footprint nel registro eventi.
Dai un'occhiata e pubblica tutte le voci del registro che riportano le assd.
È possibile controllare la seguente:
- Verificare nella console di gestione di IIS che è consentito l'estensione axd (l'estensione gestore HTTP di default).
- Controllare anche se la casella di controllo "Verifica se il file esiste" è deselezionata. Questa schermata viene visualizzata dopo aver fatto clic sul pulsante "Modifica" dopo aver selezionato l'estensione axd.
- Verificare se il gestore HTTP è registrato correttamente in web.config. Dovrebbe anche essere nella sezione di configurazione giusta in base alla versione di IIS. Per la modalità classica IIS6 e IIS7 dovrebbe essere in
<system.web><httpHandlers>
. Per la modalità integrata IIS7 dovrebbe essere registrato in<system.webServer><handlers>
.
se siete su IIS7 assicuratevi di aggiungere il gestore alla sezione <system.webServer><handlers>
:
<add name="MyName" path="MyName.axd" verb="*" type="NameSpace.Class, Assembly" />
Confermare che in Request Filtering
si sia * avere .axd
come un'estensione ammessi, o * avere Allow unlisted file name extensions
spuntato in Modifica richieste Impostazioni filtro
Lo stesso effetto può essere ottenuto con la seguente sezione web.config:
<system.webServer>
<security>
<requestFiltering>
<fileExtensions>
<add fileExtension=".axd" allowed="true" />
</fileExtensions>
</requestFiltering>
</security>
</system.webServer>
Volevo fare l'opposto, quindi era perfetto (ovviamente, ho usato 'false' al posto di' true'). – Fenton
Nel mio caso, stavo trasferendo il progetto da. NET 2.0 utilizzando la conversione automatica. Il convertitore ha aggiunto la sezione <system.webServer>
e tutti i gestori e i moduli presenti nello <system.web>
. Tuttavia, per ogni gestore ha aggiunto il seguente attributo: preCondition = "integratedMode, runtimeVersionv2.0" Una volta rimosso l'attributo, i 404 si sono fermati e il gestore ha iniziato a funzionare.
Grazie per avermi salvato una quantità di tempo sconosciuta, ma probabilmente significativa! – bentayloruk
ho aggiunto un attributo runAllManagedModulesForAllRequests = "true" in moduli .. nodo del sezione system.webServer, le 404s arrestato e gestore ha iniziato a funzionare.
Se questo aiuterà qualcuno, ho avuto lo stesso problema, pochi di noi hanno trascorso 2 giorni. Su 3 server tutto ha funzionato bene e anche sullo sviluppo ma su questo server 404 non stop. La soluzione, ho cambiato da integrato a classico e ha funzionato
I file .aspx funzionano? Quale versione di ASP.NET è installata? – jrummell