diff --git a/src/Umbraco.Core/ApplicationContext.cs b/src/Umbraco.Core/ApplicationContext.cs
index d6cf1c27d2..0cacb9fc09 100644
--- a/src/Umbraco.Core/ApplicationContext.cs
+++ b/src/Umbraco.Core/ApplicationContext.cs
@@ -222,6 +222,8 @@ namespace Umbraco.Core
///
internal string OriginalRequestUrl { get; set; }
+ private bool _versionsDifferenceReported;
+
///
/// Checks if the version configured matches the assembly version
///
@@ -231,17 +233,19 @@ namespace Umbraco.Core
{
try
{
- string configStatus = ConfigurationStatus;
- string currentVersion = UmbracoVersion.Current.ToString(3);
+ var configStatus = ConfigurationStatus;
+ var currentVersion = UmbracoVersion.Current.ToString(3);
+ var ok = configStatus == currentVersion;
-
- if (currentVersion != configStatus)
+ if (ok == false && _versionsDifferenceReported == false)
{
+ // remember it's been reported so we don't flood the log
+ // no thread-safety so there may be a few log entries, doesn't matter
+ _versionsDifferenceReported = true;
ProfilingLogger.Logger.Debug("CurrentVersion different from configStatus: '" + currentVersion + "','" + configStatus + "'");
}
-
- return (configStatus == currentVersion);
+ return ok;
}
catch
{
diff --git a/src/Umbraco.Web.UI.Client/src/less/login.less b/src/Umbraco.Web.UI.Client/src/less/login.less
index d01dec8733..163909a9f3 100644
--- a/src/Umbraco.Web.UI.Client/src/less/login.less
+++ b/src/Umbraco.Web.UI.Client/src/less/login.less
@@ -22,9 +22,10 @@
}
.login-overlay .form {
+ position:fixed;
display: block;
- padding-top: 100px;
- padding-left: 165px;
+ top: 100px;
+ left: 165px;
width: 370px;
text-align: right;
}
@@ -45,6 +46,13 @@
text-align: center;
}
+@media (max-width: 565px) {
+ // Remove padding on login-form on smaller devices
+ .login-overlay .form {
+ left: inherit;
+ right:25px;
+ }
+
#hrOr {
height: 30px;
text-align: center;
diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml
index ad7737e5be..41e8760eea 100644
--- a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml
+++ b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml
@@ -863,7 +863,7 @@ Mange hilsner fra Umbraco robotten
Redaktør
Uddragsfelt
Sprog
- Login
+ Brugernavn
Startnode i mediearkivet
Moduler
Deaktivér adgang til Umbraco
@@ -881,12 +881,11 @@ Mange hilsner fra Umbraco robotten
Vælg sider for at ændre deres rettigheder
Søg alle 'børn'
Start node
- Brugernavn
+ Navn
Bruger tilladelser
Brugertype
Bruger typer
Forfatter
-
Din profil
Din historik
Session udløber
diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/nl.xml b/src/Umbraco.Web.UI/umbraco/config/lang/nl.xml
index 05e9de462e..0320df479e 100644
--- a/src/Umbraco.Web.UI/umbraco/config/lang/nl.xml
+++ b/src/Umbraco.Web.UI/umbraco/config/lang/nl.xml
@@ -16,8 +16,6 @@
Uitschakelen
Prullenbak leegmaken
Documenttype exporteren
- Exporteer naar .NET
- Exporteer naar .NET
Documenttype importeren
Package importeren
Aanpassen in Canvas
@@ -51,11 +49,11 @@
Nieuw domein '%0%' is aangemaakt
Domein '%0%' is verwijderd
Domein '%0' is al aanwezig
+ Domein '%0%' is bijgewerkt
+ Bewerk huidige domeinen
Zgn. 'one-level' paden in domeinen worden ondersteund, bijv. "example.com/en". Echter, ze
zouden moeten worden vermeden. Gebruik bij voorkeur de cultuurinstelling hierboven.]]>
- Domein '%0%' is bijgewerkt
- Bewerk huidige domeinen
Overerven
Cultuur
of erf de cultuur over van de ouder nodes. Zal ook van toepassing
@@ -87,6 +85,7 @@
Macro invoegen
Afbeelding invoegen
Relaties wijzigen
+ Terug naar overzicht
Opslaan
Opslaan en publiceren
Opslaan en verzenden voor goedkeuring
@@ -117,6 +116,7 @@
Alleen alternatieve types geldig voor de huidige locatie worden weergegeven.
+ Is gepubliceerd
Over deze pagina
Alternatieve link
(hoe zou jij de foto beschrijven via de telefoon)
@@ -133,6 +133,7 @@
Dit item is gewijzigd na publicatie
Dit item is niet gepubliceerd
Laatst gepubliceerd op
+ Nog geen items om weer te geven.
Mediatype
Link naar media item(s)
Ledengroep
@@ -152,11 +153,12 @@
Om nodes te sorteren, sleep de nodes of klik op één van de kolomtitels. Je kan meerdere nodes tegelijk selecteren door de "shift"- of "control"knop in te drukken tijdens het selecteren.
Statistieken
Titel (optioneel)
+ Alternatieve tekst (optioneel)
Type
Depubliceren
Laatst gewijzigd
Date/time this document was edited
- Bestand verwijderen
+ Bestand(en) verwijderen
Link naar het document
Lid van groep(en)
Geen lid van groep(en)
@@ -170,7 +172,7 @@
Waar wil je de nieuwe %0% aanmaken?
- Aanmaken op
+ Aanmaken onder
Kies een type en een titel
"Documenttypes" strong>.]]>
@@ -241,16 +243,20 @@
Cultuurnaam
- Type je gebruikersnaam
- Type je wachtwoord
+ Typ je gebruikersnaam
+ Typ je wachtwoord
Benoem de %0%...
- Type een naam...
- Type om te zoeken...
- Type om te filteren...
+ Typ een naam...
+ Typ om te zoeken...
+ Typ om te filteren...
+ Typ om tags toe te voegen (druk op enter na elke tag)...
+ Toestaan op root-niveau
+ Wanneer aangevinkt dan mag dit document type aangemaakt worden op het root-niveau van content of media trees.
Toegelaten subnodetypes
+ Document Type Composities
Nieuw
Tab verwijderen
Omschrijving
@@ -258,6 +264,11 @@
Tab
Miniatuur
Lijstweergave inschakelen
+ Stelt het content item in zodat een sorteer- en zoekbare lijstweergave van onderliggende nodes wordt getoond. De onderliggende nodes worden niet in de tree getoond
+ Huidige lijstweergave
+ De actieve data type in lijstweergave
+ Maak een aangepaste lijstweergave
+ Verwijder aangepaste lijstweergave
Prevalue toevoegen
@@ -501,7 +512,6 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
Sessie is verlopen
© 2001 - %0%
umbraco.com
]]>
- Welkom bij Umbraco, geef je gebruikersnaam en wachtwoord op in de onderstaande velden:
Dashboard
@@ -662,6 +672,9 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
Open in nieuw venster
Verwijder link
+
+ Reset
+
Huidige versie
Rode tekst wordt niet getoond in de geselecteerde versie , groen betekent toegevoegd]]>
@@ -690,6 +703,8 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
Umbraco Contour
Help
+ Formulieren
+ Analytics
Standaard template
@@ -708,6 +723,8 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
Dit inhoudstype gebruikt
als basis inhoudstype. Tabs van basis inhoudstypes worden niet getoond en kunnen alleen worden aangepast op het basis inhoudstype zelf
Geen eigenschappen gedefinieerd op dit tabblad. Klik op de link "voeg een nieuwe eigenschap" aan de bovenkant om een nieuwe eigenschap te creëren.
+ Master Document Type
+ Maak een bijbehorend template
Sorteren gereed.
@@ -788,36 +805,40 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
Quick Guide voor Umbraco template tags
Sjabloon
-
- Item toevoegen
- Een rij aan de lay-out toevoegen
- teken onderaan en voeg je eerste item toe]]>
+
+ Item toevoegen
+ Een rij aan de lay-out toevoegen
+ teken onderaan en voeg je eerste item toe]]>
- Grid lay-outs
- Lay-outs zijn het globale werkgebied voor de grid editor. Je hebt meestal maar één of twee verschillende lay-outs nodig
- Een grid layout toevoegen
- De lay-out aanpassen door de kolombreedte aan te passen en extra kolommen toe te voegen
+ Klik om een item te embedden
+ Klik om een afbeelding in te voegen
+ Afbeelding ondertitel...
+ Typ hier......
+ Grid lay-outs
+ Lay-outs zijn het globale werkgebied voor de grid editor. Je hebt meestal maar één of twee verschillende lay-outs nodig
+ Een grid layout toevoegen
+ De lay-out aanpassen door de kolombreedte aan te passen en extra kolommen toe te voegen
- Rijconfiguratie
- Rijen zijn voorgedefinieerde cellen die horizontaal zijn gerangschikt
- Een rijconfiguratie toevoegen
- De rijconfiguratie aanpassen door de breedte van de cel in te stellen en extra cellen toe te voegen
+ Rijconfiguratie
+ Rijen zijn voorgedefinieerde cellen die horizontaal zijn gerangschikt
+ Een rijconfiguratie toevoegen
+ De rijconfiguratie aanpassen door de breedte van de cel in te stellen en extra cellen toe te voegen
- Kolommen
- Het totaal aantal gecombineerde kolommen in de grid layout
+ Kolommen
+ Het totaal aantal gecombineerde kolommen in de grid layout
- Instellingen
- Configureren welke instellingen de editors kunnen aanpassen
+ Instellingen
+ Configureren welke instellingen de editors kunnen aanpassen
- Styles
- Configureren welke stijlen de editors kunnen aanpassen
+ Styles
+ Configureren welke stijlen de editors kunnen aanpassen
- De instellingen worden enkel bewaard indien de ingevoerde Json geldig is
+ De instellingen worden enkel bewaard indien de ingevoerde Json geldig is
- Alle editors toelaten
- Alle rijconfiguraties toelaten
-
+ Alle editors toelaten
+ Alle rijconfiguraties toelaten
+
Alternatief veld
Alternatieve tekst
diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/sv.xml b/src/Umbraco.Web.UI/umbraco/config/lang/sv.xml
index aed36d5d92..b619025624 100644
--- a/src/Umbraco.Web.UI/umbraco/config/lang/sv.xml
+++ b/src/Umbraco.Web.UI/umbraco/config/lang/sv.xml
@@ -40,11 +40,11 @@
Lägg till nytt domännamn
Domännamn
- Har skapat domännamnet {0}
- Har tagit bort domännamnet {0}
- Domänen {0} är redan tillagd
+ Har skapat domännamnet %0%
+ Har tagit bort domännamnet %0%
+ Domänen %0% är redan tillagd
t.ex.: dittdomannamn.se, www.dittdomannamn.se
- Domännamnet {0} har uppdaterats
+ Domännamnet %0% har uppdaterats
Domänen är redan tilldelad
Ärv
Ogiltigt domännamn
@@ -145,7 +145,7 @@
Sidnamn
Ej medlem av grupp(er)
Egenskaper
- Detta dokument är publicerat men syns inte eftersom den överordnade sidan {0} inte är publicerad
+ Detta dokument är publicerat men syns inte eftersom den överordnade sidan %0% inte är publicerad
Oops: detta dokument är publicerat men finns inte i cacheminnet (internt fel)
Publicera
Publiceringsstatus
@@ -166,7 +166,7 @@
Länk till dokument
- Var vill du skapa den nya {0}
+ Var vill du skapa den nya %0%
Skapa innehåll under
"dokumenttyper".]]>
"mediatyper".]]>
@@ -187,7 +187,7 @@
Stäng fönstret
Är du säker på att du vill ta bort
Är du säker på att du vill avaktivera
- Kryssa i denna ruta för att bekräfta att {0} objekt tas bort
+ Kryssa i denna ruta för att bekräfta att %0% objekt tas bort
Är du säker?
Är du säker?
Klipp ut
@@ -228,7 +228,7 @@
Se cachat objekt
- Redigera de olika översättningarna för ordboksinlägget {0} nedan. Du kan lägga till ytterligare språk under 'språk' i menyn till vänster.
+ Redigera de olika översättningarna för ordboksinlägget %0% nedan. Du kan lägga till ytterligare språk under 'språk' i menyn till vänster.
Språknamn
@@ -265,15 +265,15 @@
Informationen har sparats, men innan du kan publicera denna sida måste du åtgärda följande fel:
Det går inte att byta lösenord i den medlemshanterare du har valt (EnablePasswordRetrieval måste vara satt till 'true').
- {0} redan finns
+ %0% redan finns
Följande fel inträffade:
Följande fel inträffade:
- Lösenordet måste bestå av minst {0} tecken varav minst {1} är icke-alfanumeriska tecken (t.ex. %, #, !, @).
- {0} måste vara ett heltal
- {0} under {1} är ett obligatoriskt fält
- {0} är ett obligatoriskt fält
- {0} under {1} har ett felaktigt format
- {0} har ett felaktigt format
+ Lösenordet måste bestå av minst %0% tecken varav minst %1% är icke-alfanumeriska tecken (t.ex. %, #, !, @).
+ %0% måste vara ett heltal
+ %0% under %1% är ett obligatoriskt fält
+ %0% är ett obligatoriskt fält
+ %0% under %1% har ett felaktigt format
+ %0% har ett felaktigt format
Även om CodeMirror är aktiverad i konfigurationen, så är den avaktiverad i Internet Explorer på grund av att den inte är tillräckligt stabil
@@ -408,12 +408,12 @@
Kunde inte spara filen web.config. Vänligen ändra databasanslutnings-inställningarna manuellt.
Din databas har lokaliserats och är identifierad som
Databaskonfiguration
- installera]]>
- Nästa för att fortsätta.]]>
+ installera]]>
+ Nästa för att fortsätta.]]>
Databasen kunde inte hittas! Kontrollera att informationen i databasanslutnings-inställningarna i filen "web.config" är rätt. För att fortsätta måste du redigera filen "web.config" (du kan använda Visual Studio eller din favorit text-redigerare), bläddra till slutet, lägg till databasanslutnings-inställningarna för din databas i fältet som heter "umbracoDbDSN" och spara filen.
Klicka på Försök igen knappen när du är klar.
> Mer information om att redigera web.config hittar du här.
]]>
Eventuellt kan du behöva kontakta ditt webb-hotell. Om du installerar på en lokal maskin eller server kan du få informationen från din systemadministratör.]]>
- Tryck Uppgradera knappen för att uppgradera din databas till Umbraco {0} Du behöver inte vara orolig. Inget innehåll kommer att raderas och efteråt kommer allt att fungera som vanligt!
]]>
- Tryck Nästa för att fortsätta.]]>
+ Tryck Uppgradera knappen för att uppgradera din databas till Umbraco %0% Du behöver inte vara orolig. Inget innehåll kommer att raderas och efteråt kommer allt att fungera som vanligt!
]]>
+ Tryck Nästa för att fortsätta.]]>
Nästa för att fortsätta med konfigurationsguiden]]>
Lösenordet på standardanvändaren måste bytas!]]>
Standardanvändaren har avaktiverats eller har inte åtkomst till Umbraco!Du behöver inte göra något ytterligare här. Klicka Next för att fortsätta.]]>
@@ -455,13 +455,13 @@
Tack för att du valde Umbraco
Besök din nya webbplats Du installerade Runway, så varför inte se hur din nya webbplats ser ut.]]>
Ytterligare hjälp och information Få hjälp från våra prisbelönta community, bläddra i dokumentationen eller titta på några gratis videor om hur man bygger en enkel webbplats, hur du använder paket eller en snabbguide till Umbracos terminologi]]>
- Umbraco {0} är installerat och klart för användning
- /web.config filen och ändra AppSettingsnyckeln UmbracoConfigurationStatus på slutet till {0}]]>
+ Umbraco %0% är installerat och klart för användning
+ /web.config filen och ändra AppSettingsnyckeln UmbracoConfigurationStatus på slutet till %0%]]>
börja omedelbart genom att klicka på "Starta Umbraco"-knappen nedan.
Om du är en ny Umbraco användarekan du hitta massor av resurser på våra kom igång sidor.]]>
Starta Umbraco För att administrera din webbplats öppnar du bara Umbraco back office och börjar lägga till innehåll, uppdatera mallar och stilmallar eller lägga till nya funktioner.]]>
Anslutningen till databasen misslyckades.
Se
- Umbraco {0} antingen för en ny installation eller en uppgradering från version 3.0.
Tryck på "next" för att börja.]]>
+ Umbraco %0% antingen för en ny installation eller en uppgradering från version 3.0.
Tryck på "next" för att börja.]]>
Umbraco Version 3
Umbraco Version 4
@@ -474,7 +474,7 @@
Förnya nu för att spara ditt arbete
- © 2001 - {0}
umbraco.com ]]>
+ © 2001 - %0%
umbraco.com ]]>
Happy super Sunday
Happy manic Monday
Happy tremendous Tuesday
@@ -496,10 +496,10 @@
Välj sida ovan...
- {0} har kopierats till {1}
- Ange mål att kopiera sidan {0} till nedan
- {0} har flyttats till {1}
- Ange vart sidan {0} skall flyttas till nedan
+ %0% har kopierats till %1%
+ Ange mål att kopiera sidan %0% till nedan
+ %0% har flyttats till %1%
+ Ange vart sidan %0% skall flyttas till nedan
är nu roten för ditt nya innehåll. Klicka 'ok' nedan.
Du har inte valt någon sida än. Välj en sida i listan ovan och klicka sedan 'fortsätt'.
Aktuell nod får inte existera i roten
@@ -550,7 +550,7 @@
Fyll i ett namn...
Skriv för att filtrera...
- Namnge {0}...
+ Namnge %0%...
Fyll i ditt lösenord
Skriv för att söka...
Fyll i ditt lösenord
@@ -562,8 +562,8 @@
Sida med felmeddelande
Används när en användare är inloggad, men saknar rättigheter att se sidan
Välj hur du vill lösenordsskydda sidan
- {0} är nu lösenordsskyddad
- Lösenordsskyddet är nu borttaget på {0}
+ %0% är nu lösenordsskyddad
+ Lösenordsskyddet är nu borttaget på %0%
Inloggningssida
Välj sidan med inloggningsformuläret
Ta bort lösenordsskydd
@@ -574,17 +574,17 @@
Välj detta alternativ om du vill skydda sidan med ett enkelt användarnamn och lösenord. Alla loggar då in med samma inloggningsuppgifter.
- {0} kunde inte publiceras på grund av dess tidsinställda publicering.
- {0} kunde inte publiceras på grund av att ett tredjepartstillägg avbröt publiceringen.
- {0} kan inte publiceras, på grund av att överordnad nod inte är publicerad.
- {0} kunde inte publiceras på grund av följande orsaker: {1} passerade inte valideringen.
+ %0% kunde inte publiceras på grund av dess tidsinställda publicering.
+ %0% kunde inte publiceras på grund av att ett tredjepartstillägg avbröt publiceringen.
+ %0% kan inte publiceras, på grund av att överordnad nod inte är publicerad.
+ %0% kunde inte publiceras på grund av följande orsaker: %1% passerade inte valideringen.
Inkludera opublicerade undersidor
Publicering pågår - vänligen vänta...
- {0} av {1} sidor har publicerats...
- {0} har publicerats
- {0} och underliggande sidor har publicerats
- Publicera {0} och alla dess underordnade sidor
- ok för att publicera {0}. Därmed blir innehållet publikt.
Du kan publicera denna sida och alla dess undersidor genom att kryssa i publicera alla undersidor. ]]>
+ %0% av %1% sidor har publicerats...
+ %0% har publicerats
+ %0% och underliggande sidor har publicerats
+ Publicera %0% och alla dess underordnade sidor
+ ok för att publicera %0%. Därmed blir innehållet publikt.
Du kan publicera denna sida och alla dess undersidor genom att kryssa i publicera alla undersidor. ]]>
Lägg till extern länk
@@ -654,12 +654,12 @@
Publiceringen avbröts av ett tredjepartstillägg
Egenskapstyp finns redan
Egenskapstyp skapad
- Datatyp: {1}]]>
+ Datatyp: %1%]]>
Egenskapstypen har tagits bort
Innehållstypen har sparats
Ny flik skapad
Fliken har tagits bort
- Fliken med id: {0} har tagits bort
+ Fliken med id: %0% har tagits bort
Innehållet är avpublicerat
Stilmallen kunde inte sparas
Stilmallen sparades
@@ -790,13 +790,13 @@
Ladda hem DTD för XML
Fält
Inkludera undersidor
- Hej {0}. Detta är ett automatisk mail skickat for att informera dig om att det finns en översättningsförfrågan på dokument '%1' till '{5}' skickad av {2}. För att redigere, besök http://{3}/translation/details.aspx?id={4}. För att få en översikt över dina översättningsuppgigter loggar du in i Umbraco på: http://{3}
- [{0}] Översättningsuppgit för {1}
+ Hej %0%. Detta är ett automatisk mail skickat for att informera dig om att det finns en översättningsförfrågan på dokument '%1%' till '%5%' skickad av %2%. För att redigera, besök http://%3%/translation/details.aspx?id=%4%. För att få en översikt över dina översättningsuppgigter loggar du in i Umbraco på: http://%3%
+ [%0%] Översättningsuppgift för %1%
Hittade inga användare som är översättare. Vänligen skapa en användare som är översättare innan du börjar skicka innehåll för översättning
Arbetsuppgifter som du har skapat
som du har skapat. För att se en detaljvy med kommentarer, klicka på "Detaljer" eller på sidans namn. Du kan också ladda ned sidan i XML-format genom att klicka på länken "Ladda ned XML".
För att markera ett översättningsjobb som avslutat, gå till detaljvyn och klicka på knappen "Stäng".]]>
- Sidan {0} har skickats för översättning
- Skicka sidan {0} för översättning
+ Sidan %0% har skickats för översättning
+ Skicka sidan %0% för översättning
Tilldelat av
Arbetsuppgift öppnad
Totalt antal ord
@@ -841,7 +841,7 @@
Ny uppdatering tillgänglig
- {0} är klart, klicka här för att ladda ner
+ %0% är klart, klicka här för att ladda ner
Ingen kontakt med server
Fel vid kontroll av uppdatering. Se trace-stack för mer information.
diff --git a/src/Umbraco.Web/Scheduling/BackgroundTaskRunner.cs b/src/Umbraco.Web/Scheduling/BackgroundTaskRunner.cs
index dc873f82ce..e317a348cc 100644
--- a/src/Umbraco.Web/Scheduling/BackgroundTaskRunner.cs
+++ b/src/Umbraco.Web/Scheduling/BackgroundTaskRunner.cs
@@ -535,7 +535,7 @@ namespace Umbraco.Web.Scheduling
// processing, call the UnregisterObject method, and then return or it can return immediately and complete
// processing asynchronously before calling the UnregisterObject method.
- _logger.Debug>("Shutting down, waiting for tasks to complete.");
+ _logger.Info>("Shutting down, waiting for tasks to complete.");
Shutdown(false, false); // do not accept any more tasks, flush the queue, do not wait
lock (_locker)
diff --git a/src/Umbraco.Web/UmbracoModule.cs b/src/Umbraco.Web/UmbracoModule.cs
index 1142775be6..b784e4eac8 100644
--- a/src/Umbraco.Web/UmbracoModule.cs
+++ b/src/Umbraco.Web/UmbracoModule.cs
@@ -372,15 +372,23 @@ namespace Umbraco.Web
return false;
}
+ private bool _notConfiguredReported;
+
// ensures Umbraco is configured
// if not, redirect to install and return false
// if yes, return true
- private static bool EnsureIsConfigured(HttpContextBase httpContext, Uri uri)
+ private bool EnsureIsConfigured(HttpContextBase httpContext, Uri uri)
{
if (ApplicationContext.Current.IsConfigured)
return true;
- LogHelper.Warn("Umbraco is not configured");
+ if (_notConfiguredReported)
+ {
+ // remember it's been reported so we don't flood the log
+ // no thread-safety so there may be a few log entries, doesn't matter
+ _notConfiguredReported = true;
+ LogHelper.Warn("Umbraco is not configured");
+ }
var installPath = UriUtility.ToAbsolute(SystemDirectories.Install);
var installUrl = string.Format("{0}/?redir=true&url={1}", installPath, HttpUtility.UrlEncode(uri.ToString()));
diff --git a/src/Umbraco.Web/umbraco.presentation/content.cs b/src/Umbraco.Web/umbraco.presentation/content.cs
index 8c2eca313c..af12d72a10 100644
--- a/src/Umbraco.Web/umbraco.presentation/content.cs
+++ b/src/Umbraco.Web/umbraco.presentation/content.cs
@@ -802,6 +802,7 @@ order by umbracoNode.level, umbracoNode.sortOrder";
private void LoadXmlLocked(SafeXmlReaderWriter safeXml, out bool registerXmlChange)
{
LogHelper.Debug("Loading Xml...");
+ EnsureFileLock(); // get the lock asap
// try to get it from the file
if (XmlFileEnabled && (safeXml.Xml = LoadXmlFromFile()) != null)
@@ -1061,12 +1062,14 @@ order by umbracoNode.level, umbracoNode.sortOrder";
internal void SaveXmlToFile()
{
LogHelper.Info("Save Xml to file...");
- EnsureFileLock();
-
- var xml = _xmlContent; // capture (atomic + volatile), immutable anyway
try
{
+ var xml = _xmlContent; // capture (atomic + volatile), immutable anyway
+ if (xml == null) return;
+
+ EnsureFileLock();
+
// delete existing file, if any
DeleteXmlFile();
@@ -1084,7 +1087,7 @@ order by umbracoNode.level, umbracoNode.sortOrder";
fs.Write(bytes, 0, bytes.Length);
}
- LogHelper.Debug("Saved Xml to file.");
+ LogHelper.Info("Saved Xml to file.");
}
catch (Exception e)
{
@@ -1099,12 +1102,14 @@ order by umbracoNode.level, umbracoNode.sortOrder";
internal async System.Threading.Tasks.Task SaveXmlToFileAsync()
{
LogHelper.Info("Save Xml to file...");
- EnsureFileLock();
-
- var xml = _xmlContent; // capture (atomic + volatile), immutable anyway
try
{
+ var xml = _xmlContent; // capture (atomic + volatile), immutable anyway
+ if (xml == null) return;
+
+ EnsureFileLock();
+
// delete existing file, if any
DeleteXmlFile();
@@ -1122,7 +1127,7 @@ order by umbracoNode.level, umbracoNode.sortOrder";
await fs.WriteAsync(bytes, 0, bytes.Length);
}
- LogHelper.Debug("Saved Xml to file.");
+ LogHelper.Info("Saved Xml to file.");
}
catch (Exception e)
{
@@ -1165,19 +1170,25 @@ order by umbracoNode.level, umbracoNode.sortOrder";
private XmlDocument LoadXmlFromFile()
{
LogHelper.Info("Load Xml from file...");
- EnsureFileLock();
try
{
+ EnsureFileLock();
+
var xml = new XmlDocument();
using (var fs = new FileStream(_xmlFileName, FileMode.Open, FileAccess.Read, FileShare.Read))
{
xml.Load(fs);
}
_lastFileRead = DateTime.UtcNow;
- LogHelper.Info("Successfully loaded Xml from file.");
+ LogHelper.Info("Loaded Xml from file.");
return xml;
}
+ catch (FileNotFoundException)
+ {
+ LogHelper.Warn("Failed to load Xml, file does not exist.");
+ return null;
+ }
catch (Exception e)
{
LogHelper.Error("Failed to load Xml from file.", e);