Luca Annuiti

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

Umbraco: impostare una pagina di errore 404 personalizzata su IIS 7.5

Su IIS7 verisone 7.5, anche se è stata modificato il file umbracoSetting.config impostando l'id della pagina che vogliamo utilizzare come pagina di errore personalizzata alla voce <error404>mioId</error404>, umbraco visualizza la pagina 404 di default di IIS.

Per visulizzare correttamente la pagina personalizzata, otre alla modifica precendete, è necessario aggiungere al file web.config, nella sezione <system.webServer> la riga seguente:
<httpErrors existingResponse="PassThrough" />

Umbraco: problemi nell'inserimento di link nel richtext editor

Può accadere in alcuni casi che i link con Url assolute inseriti nel RichText Editor vengano modificati eliminando il dominio e trasformati in Url relative, anche se inseriti lavorando con la modalità Sorgente HTML.

Per correggere il problema è necessario modificare il file /Config/tinyMceConfig.config aggiungendo nella sezione <CustomConfig> le seguenti righe:

<config key="relative_urls">false</config>
<config key="convert_urls">false</config>
<config key="document_base_url">http://full_url</config>

avendo cura di sostituire full_url con l'url completa del "sito".

Umbraco: errore "No Document exists with Version xxxxxxxx"

Nella gestione dei contenuti, se cliccando su un nodo viene visualizzato l'errore "No Document exists with Version xxxxxxxx", significa che c'è stato un problema nel back-end di umbraco sulle versioni del documento.

Nel dettaglio, il problema è dovuto ad un disallineamento delle versioni nelle tabelle cmsContentVersion e cmsDocument, creando così delle versioni orfane.

Utilizzando questa query è possibili visualizzare queste versioni orfane:

SELECT * FROM cmsContentVersion
WHERE
    cmsContentVersion.VersionId NOT IN (SELECT VersionId FROM cmsDocument) AND
    cmsContentVersion.ContentId IN (SELECT nodeId FROM cmsDocument)

Per risolvere il problema è necessario eseguire questa seconda query che elimina i record orfani:

DELETE FROM cmsContentVersion
WHERE
    cmsContentVersion.VersionId NOT IN (SELECT VersionId FROM cmsDocument) AND
    cmsContentVersion.ContentId IN (SELECT nodeId FROM cmsDocument)

Umbraco : esportare un database da MS SQL CE a MS SQL Server

Ecco i passaggi da seguire per esportare un database di Umbraco da MS SQL CE verso MS SQL Server :

  • Installare “Microsoft SQL Server Compact 4.0″, scaricabile qui: http://www.microsoft.com/en-us/download/details.aspx?id=17876
  • Scaricare “SQL Server Compact Toolbox (Standalone)”, scaricabile qui: http://sqlcetoolbox.codeplex.com/releases/view/69910
  • Aprire il file scaricato “SqlCe40Toolbox.exe“.
  • Cliccare col tasto destro sulla lista delle connessioni e selezionare l'opzione “Add SQL Server Compact 4.0 Connection…“.
  • Nella finestra di dialogo che si aprirà cliccare sul tasto “Browse” e selezionare il file di database che vogliamo convertire (con estensione .sdf).
  • Nella stessa finestra cliccare sul tasto “Test Connection” e se il responso è positivo cliccare sul tasto “Close” button.
  • Ora nel “Toolbox” cliccare col tasto destro su “Umbraco.sdf”, selezionare la voce “Script Database Schema and Data with BLOBs…” e salvare il file come “umbraco.sqlce
  • Rinominare il file umbraco.sqlce in umbraco.sql.
  • Aprire “SQL Server Management Studio” e collegarsi al server di database SQL Server/SQL Server Express.
  • Creare il database di destinazione dove importare i dati.
  • Aprire il file umbraco.sql sul database di destinazione e cliccare su “Execute“; al termine dell'operazione, se non sono stati visualizzati messaggi di errore, i dati sono stati importati in SQL Server/SQL Server Express.
  • Configurare un nuovo utente per accedere al nuovo database.
  • Ora è necessario modifcare il file “web.config” per dire ad Umbraco di usare SQL Server invece di SQL CE Database:
    sostituire la riga key=”umbracoDbDSN” con la la stringa <add key="umbracoDbDSN" value="Server=<your-server-address>;Database=<your-database-name>;User ID=<your-database-username>;Password=<your-database-password>;Trusted_Connection=False"/> modifando oppurtamente i valori per l'accesso.