Web Hosting Sfida
Bisogna ricordare che nessuna delle opzioni di configurazione della macchina sono disponibili se si sono ospitati su un server condiviso, come molti di noi (le aziende più piccole e privati) sono.
ASP.NET MVC Overhead
mio sito hanno almeno 30 secondi quando non è stato colpito in più di 20 minuti (e l'applicazione web è stato arrestato). È terribile.
Un altro modo per testare le prestazioni
C'è un altro modo per verificare se è la vostra ASP.NET MVC start up o qualcos'altro. Rilascia una normale pagina HTML sul tuo sito dove puoi colpirla direttamente.
Se il problema è correlato all'avvio di ASP.NET MVC, la pagina HTML verrà visualizzata quasi immediatamente anche quando l'app Web non è stata avviata.
Ecco come ho riconosciuto per la prima volta che il problema era nell'avvio di ASP.NET MVC. Ho caricato una pagina HTML in qualsiasi momento e caricherò rapidamente. Poi, dopo aver colpito la pagina HTML mi ha colpito uno dei miei URL ASP.NET MVC e mi piacerebbe avere il messaggio Chrome "In attesa di raddev.us ..."
Un altro test con personale Script
Successivamente ho scritto un LINQPad (controlla lo http://linqpad.net per altri) script che avrebbe colpito il mio sito ogni 8 minuti (meno del tempo necessario per scaricare l'app, che dovrebbe essere di 20 minuti) e lo lascio girare per ore .
Mentre la sceneggiatura era in esecuzione, ho colpito il mio sito web e ogni volta il mio sito si presentava incredibilmente veloce. Questo mi dà una buona idea che molto probabilmente la lentezza che stavo vivendo era a causa dei tempi di avvio di ASP.NET MVC.
Ottieni LinqPad ed è possibile eseguire il seguente script: è sufficiente modificare l'URL in proprio e lasciarlo eseguire e testarlo facilmente. Buona fortuna.
NOTA: In LINQPad dovrai premere F4 e aggiungere un riferimento a System.Net aggiungere la libreria che consente di recuperare la pagina.
ANNO: assicurarsi di modificare la variabile URL stringa in modo che punti a un URL che caricherà una rotta dal sito MVC ASP.NET in modo che il motore venga eseguito.
System.Timers.Timer webKeepAlive = new System.Timers.Timer();
Int64 counter = 0;
void Main()
{
webKeepAlive.Interval = 5000;
webKeepAlive.Elapsed += WebKeepAlive_Elapsed;
webKeepAlive.Start();
}
private void WebKeepAlive_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
webKeepAlive.Stop();
try
{
// ONLY the first time it retrieves the content it will print the string
String finalHtml = GetWebContent();
if (counter < 1)
{
Console.WriteLine(finalHtml);
}
counter++;
}
finally
{
webKeepAlive.Interval = 480000; // every 8 minutes
webKeepAlive.Start();
}
}
public String GetWebContent()
{
try
{
String URL = "http://YOURURL.COM";
WebRequest request = WebRequest.Create(URL);
WebResponse response = request.GetResponse();
Stream data = response.GetResponseStream();
string html = String.Empty;
using (StreamReader sr = new StreamReader(data))
{
html = sr.ReadToEnd();
}
Console.WriteLine (String.Format("{0} : success",DateTime.Now));
return html;
}
catch (Exception ex)
{
Console.WriteLine (String.Format("{0} -- GetWebContent() : {1}",DateTime.Now,ex.Message));
return "fail";
}
}
Ciao amico, sta eseguendo abbastanza C? Perché ? Abbiamo solo bisogno di usarlo o di disabilitare anche il riciclaggio? Mi sento sempre al secondo giorno prima richiesta molto lenta di IIS7.5 – qakmak