Skip to main content

ASP.NET e IIS – Errore (413) Request Entity Too Large e Maximum Request Length Exceeded – Come risolvere

Se vi siete imbattuti in questo articolo è probabile che stiate cercando di configurare la vostra applicazione ASP.NET (Core, MVC, Web API, Windows Forms, WCF o altro) su un web server IIS il quale, a differenza del web server di sviluppo, si rifiuta di accettare l’upload di un file di dimensioni superiori a 16kb, restituendo uno dei seguenti errori:

(413) Request Entity Too Large

Entità richiesta troppo grande

Maximum request length exceeded

Superata la lunghezza massima della richiesta

Tutti questi errori sono relativi al superamento delle dimensioni massime di un allegato – o meglio, della Request HTTP inviata al server – previste dalla nostra applicazione ASP.NET per impostazione predefinita. Queste limitazioni sono state inserite per una valida ragione: la ricezione di un file è una operazione piuttosto pesante per il server, in quanto impegna a tempo indeterminato un working thread. Per questo motivo, le impostazioni predefinite della maggior parte delle applicazioni ASP.NET prevedono una dimensione generalmente compresa tra i 16k e i 64k, sufficiente per l’invio/ricezione di form di testo ma logicamente del tutto inadeguate quando si ha l’esigenza di gestire l’upload di uno o più file.

(altro…)

 

Guida all’installazione di PHP Manager per IIS su Windows Server o Windows 10

Se siete degli affezionati utilizzatori di PHP su piattaforma Windows e Web Server IIS è probabile che già conosciate PHP Manager per IIS, un eccellente strumento gratuito che si integra con l’interfaccia utente dello strumento di amministrazione di IIS – ovvero IIS Manager – e che può essere utilizzato per svolgere una serie di funzioni utili, tra cui soprattutto le due seguenti:

  • Gestire le istanze/versioni/build di PHP a 32-bit e 64-bit installate sulla macchina.
  • Accedere e modificare i relativi file di configurazione PHP.INI.

Installare PHP Manager per IIS è molto semplice: basta lanciare il  Web Platform Installer dall’interfaccia di IIS Manager, quindi cercarlo tra gli strumenti gratuiti disponibili tramite la casella di ricerca.

(altro…)

 

Process with an ID #### is not running con Visual Studio 2015 – Come risolvere

Lavorare con Visual Studio sulle versioni più recenti di Windows può portare occasionalmente a qualche problema per via delle nuove impostazioni di sicurezza che caratterizzano il nuovo sistema: queste ultime, che prevedono un accesso limitato alle risorse normalmente disponibili all’account assegnato al software in esecuzione, bloccano l’accesso a molti elementi normalmente necessari agli strumenti di sviluppo: l’accesso in scrittura alla cartella /Program Files/, ai file di configurazione di IIS Express, alla IIS metabase e una serie di altre task che possono portare al malfunzionamento di alcuni strumenti, come ad esempio IIS Express. Alcuni di questi sono già stati affrontati in questa sede, come ad esempio in questo articolo sull’impossibilità di accedere alla IIS Metabase, in questo articolo dedicato al problema delle external request e in questo approfondimento sull’errore ‘Impossibile avviare il debug sul server Web’.

In questa occasione parliamo del seguente errore, che può verificarsi nel momento di aprire una soluzione ASP.NET Core o ASP.NET MVC o di lanciare l’applicazione in modalità DEBUG:

Impossibile avviare il debug sul server Web

Process with an ID #### is not running on Visual Studio 2015

In conseguenza di questo errore, nella finestra degli errori di Visual Studio dovrebbe essere possibile reperire altre informazioni, come ad esempio queste:

Fortunatamente esistono diversi workaround che possono risolvere questo tipo di errore: suggeriamo di provarli uno dopo l’altro, fermandosi soltanto quando si riesce a trovare quello che consente di risolvere il problema.

(altro…)

 

Servizio WCF su Windows Server 2012 con IIS8 – Errore 404: Come risolvere

Non tutti gli sviluppatori che lavorano con ASP.NET conoscono l’esistenza dell’architettura WCF: la sigla è acronimo di Windows Communication Foundation, un framework dedicato allo sviluppo di applicazioni web service-oriented lanciato da Microsoft parecchi anni fa – ai tempi del .NET Framework 3.0 – in sostituzione del precedente approccio basato sulle fin troppo note (e ormai antidiluviane) pagine ASMX.

Per comprendere appieno la differenza che intercorre tra ASMX e WCF è opportuno leggere questo eccellente articolo di Keith Elder che spiega molto bene la diffenza di vedute dei due sistemi, evidenziando le limitazioni del primo e sottolineando le potenzialità offerte dal secondo. Un endorsement senz’altro meritato, ma inevitabilmente figlio del suo tempo: ottobre 2008.

Senza nulla togliere alla validità delle conclusioni di Keith, possiamo ormai dire che anche WCF è ormai una architettura piuttosto datata, soprattutto rispetto alle funzionalità offerte in ottica REST: queste ultime sono state rese obsolete dalla stessa Microsoft con lo sviluppo del framework ASP.NET Web API e poi, più recentemente, con l’avvento di MVC6 / ASP.NET Core. Nonostante questo, WCF resta ad oggi – nell’ambito dello sviluppo in ambiente Windows – l’architettura più semplice per implementare Web Service SOAP, i quali sono peraltro ancora molto utilizzati in ambito business in Italia come nel resto del mondo. Per maggiori informazioni su WCF potete leggere questo interessante articolo su MDSN al riguardo.

Finita questa lunga premessa, veniamo al sodo! Se vi siete imbattuti in questo articolo è probabile che vi siate scontrati con un problema piuttosto comune che affligge tutti gli sviluppatori e/o amministratori di rete al momento di installare il loro primo servizio WFC su una macchina Windows Server 2012 con Internet Information Services 8 (IIS) o superiore. Una volta effettuato il deploy, al momento di lanciare la pagina Service.svc, viene restituito il più classico degli errori HTTP:

(altro…)

 

Eliminare i file di log di IIS più vecchi di una certa data con un file batch

I file di log di Internet Information Services costituiscono una risorsa irrinunciabile per qualsiasi amministratore di rete degno di questo nome, in quanto sono l’unico strumento che consente di tenere traccia in modo efficace di una serie di informazioni utilissime su chi visita i nostri siti e servizi web: per un elenco completo delle informazioni che sono in grado di memorizzare è possibile fare riferimento a questa pagina ufficiale che descrive il formato utilizzato, ovvero il W3C Extended Log File Format, al quale Microsoft ha scelto di uniformarsi a partire dalla versione 6 di IIS.

Premessa

Ovviamente la scelta su quali informazioni memorizzare e quali no dipende interamente dall’amministratore, il quale può optare per un livello di dettaglio più o meno approfondito tramite il pannello di gestione del servizio di pubblicazione web – anche noto come IIS Manager – facendo click sull’icona Logging, come è possibile vedere nella schermata di seguito:

iis-logging-screenshot

Come già detto poco sopra, attivare il logging del traffico dei propri siti è una scelta quasi obbligata per qualsiasi amministratore di rete. Oltre ad avere una indispensabile utilità statistica, si tratta di informazioni che è opportuno tenere anche per tutelarsi da una serie di potenziali problematiche di natura legale o penale: penetration attacks da parte di hacker o smanettoni in cerca di gloria, abuso dei servizi che vengono offerti al pubblico, e così via.

Si tratta di possibilità relativamente remote, ma attenzione a prenderle sotto gamba: qualsiasi servizio web che preveda la possibilità di effettuare un upload consente di fatto a un utente malintenzionato di caricare sul vostro sistema immagini, video, testi, brani musicale, software o altri file illegali che potrebbero prima o poi – se siete particolarmente sfortunati – essere oggetto di indagine da parte delle forze dell’ordine, con il conseguente obbligo di fornire tutti i log del caso. Ove mai un eventualità del genere venisse malauguratamente a verificarsi, la funzionalità di logging di IIS sarà una vera e propria manna dal cielo – ammesso che non l’abbiate disabilitata!

(altro…)