Luca Annuiti

il mio Blog personale su Virtualizzazione, SharePoint, Programmazione e ...

Umbraco: loggare eventi custom

Le funzioni da utilizzare per inserire nei log di umbraco messaggi custom sono le seguenti:

LogHelper.Info(System.Type, System.Func)
LogHelper.Error(System.Type, string, System.Exception)

E' necessario include la direttiva @using Umbraco.Core.Logging nella pagina o codice sorgente.


@using Umbraco.Core.Logging

@{ // Inserimento di informazioni "custom" LogHelper.Info(this.GetType(), "Message"); //Inserimento di errori "custom" LogHelper.Error(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "messagge2", ex); }


Umbraco: specificare la durata della cache per i contenuti statici

E' possibile specificare la durata della cache per contentuti statici specificando il percorso della cartella semplicemente aggiungende alla fine del file web.config (prima della chiurusa </configuration>) queste righe:

<location path="media">
    <system.webServer>
        <staticContent>
            <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
        </staticContent>
    </system.webServer>
</location>

Il parametro path è il nome della cartella, quindi è possibile replicare l'impostazione per differenti percorsi.
Il valore cacheControlMaxAge è espresso in giorni.ore.minuti.secondi.

Umbraco: redirect 301 con querystring nel campo virtualurl

Problema: inserendo nel file UrlRewriting.config una regola dove nel campo virtualurl un indirizzo che contiene dei paramentri, questi ultimi vengono ignorati

<add name="DEMO"
virtualUrl="/demo.aspx?PageID=1110"
destinationUrl="/new-url/"
rewriteUrlParameter="IncludeQueryStringForRewrite"
ignoreCase="true"
redirect="Domain"
redirectMode="Permanent" />
La motiviazione è semplice, il "?" è una carattere riservato, quindi è necessario modifcare la stringa con una sequenza di escape in modo che sia riconosciuta:
virtualUrl="(\/demo\.aspx\?PageID=1110)"





Umbraco: gestire pagine o file con estensioni differenti da .aspx

Per gestire pagine o file con estensioni differenti da .aspx è necessario modificare il file web.config aggiungendo alla sezione system.web->httpHandlers la seguente riga (o piu righe a seconda delle estensioni da gestire):

<add name="UmbracoBaseMappingAsp" path="*.EXT" verb="*" type="umbraco.BasePages.BasePage" resourceType="Unspecified" preCondition="integratedMode" />

Umbraco: contenuti inaccessibili dopo la cancellazione di un Document Type

Purtroppo l'eliminazione di un tipo di documento rimuove tutti i nodi collegati e non sembra esserci alcun modo per recuperare questi contenuti se non quello di ripristinare un backup dell'intero sito. Si tratta di un "difetto" che sembra esistere da sempre.

L'unico modo per rimuovere dalla sezione Content gli elementi inaccessibili è ricostruire il file cache XML  richiamando l'URL http://YOURDOMAIN/Umbraco/dialogs/republish.aspx?xml=true e cliccare su "republish", eliminando in questo modo i collegamento orfani.

Altre info a questo post su issue tracker:

U4-5187 Deleting doctype wipes out all content nodes based on it