7 febbraio 2010  5

Come risolvere un errore inaspettato durante l’uso della nuova gestione commenti di BlogEngine.NET 1.6 ed aggiornare la localizzazione in italiano

Logo sito BlogEngine.NETIl nuovo backend di gestione dei commenti di BlogEngine.NET 1.6, consente finalmente di modificare in toto ogni singola proprietà di quest’ultimi, oltre che a prevederne l’eventuale inserimento in “black list” o in “white list” sia in base all’autore che all’indirizzo IP di provenienza.

Sfortunatamente, è stata rilavata un’anomalia nel codice della pagina Editor.aspx localizzata nel percorso /admin/comments/ che solleva un’eccezione, simile a quella che potete leggere a seguire:

Url : http://www.cristianofino.net/admin/Comments/Editor.aspx?id=...
Raw Url : /admin/Comments/Editor.aspx?id=...
Message : Valore potenzialmente pericoloso Request.Form rilevato dal client (txtArea="Questo è un commento d...").
Source : System.Web
StackTrace :    in System.Web.HttpRequest.ValidateString(String s, String valueName, String collectionName)
   in System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc, String collectionName)
   in System.Web.HttpRequest.get_Form()
   in System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull)
   in System.Web.UI.Page.DeterminePostBackMode()
   in System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   in System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   in System.Web.UI.Page.ProcessRequest()
   in System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
   in System.Web.UI.Page.ProcessRequest(HttpContext context)
   in ASP.admin_comments_editor_aspx.ProcessRequest(HttpContext context)
   in System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   in System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
TargetSite : Void ValidateString(System.String, System.String, System.String)

 

Il problema si presenta principalmente negli hosting ove è stato fatto l’aggiornamento del framework .NET dalla versione 2.0 alla 3.5, ed è fortunatamente di facile soluzione, dato che è sufficiente disattivare la “request validation” nell’header della pagina incriminata.

Per fare questo è sufficiente aprire il già citato file Editor.aspx e sostituire la riga

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Editor.aspx.cs" 
                                        Inherits="admin_Comments_Editor" %>

con

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Editor.aspx.cs" 
                    Inherits="admin_Comments_Editor" ValidateRequest="false" %>

La medesima problematica è stata affrontata anche in un thread aperto da Andrea Moro (e risolto da Ben Amada) sul forum ufficiale di Blogengine.NET via Codeplex.

La localizzazione in lingua italiana di BlogEngine.NET 1.6

L’ultima localizzazione nella nostra lingua di BlogEngine.NET risale ad un lavoro fatto dal sottoscritto moltissimi mesi fa e relativo all’allora versione 1.5.08. Sfortunatamente, da allora, il file di risorse in italiano non è stato toccato, nemmeno per aggiungere tutte le nuove etichette in lingua inglese necessarie all’ultima versione.

In questi ultimi giorni, nei ritagli di tempo, ho cercato di “mettere una pezza” a questa mancanza ed ho preparato un file di localizzazione aggiornato che dovrebbe andare a coprire almeno al 99% (o quasi) le traduzioni mancanti, soprattutto per quanto riguarda le nuove funzionalità di backend ed alcuni messaggi di errore.

Ci tengo a sottolineare che, purtroppo, esistono ancora delle sezioni, come ad esempio il backend di gestione delle estensioni o la pagina di ricerca, o ancora la pagina di errore 404, in cui le etichette sono tuttora hardcoded nel codice. In questi casi è necessario provvedere “a manina” con le personalizzazioni necessarie.

Naturalmente potete scaricare il file di risorse labels.it.resx (6,12 kb) aggiornato e copiarlo nella cartella /App_GlobalResources/.

Poichè questo file verrà presto trasmesso al team di BlogEngine.NET per andare ad aggiornare la versione precedente, invito a segnalarmi tempestivamente le eventuali assenze rilevate nella traduzione dei testi.

Esprimi il tuo giudizio

Commenti (5) -

Giorgio Borelli
Giorgio Borelli
21 feb 2010 alle 22:25  01
Ciao Cristiano,
riscontro un problema con l'Extensions di BE.NET (V. 1.6) indirettamente legato al discorso dei commenti.

Per filtrare i commenti spam, ho provato ad abilitare Akismet, ma non appena clicco sul link disabled per abilitarlo, la label lblErrorMsg inerente la visualizzazione delle possibili eccezioni mi riporta il seguente messaggio:
Changes will not be applied: Accesso al percorso 'D:\Inetpub\webs\informaticandonet\Web.Config' negato.

Penso che sia quasi certamente un discorso legato ai permessi settati sul server sul quale ospito il mio sito, ovvero aruba, sapresti darmi delle delucidazioni in merito? Credo che anche a voler aprire un ticket su aruba per chiedere di elevare i miei permessi possa risolversi con un nulla di fatto, poichè queste sono le loro politiche di restrizione e non penso che le cambino.

Nonostante tutto, l'Akismet passa dallo stato disabled ad enabled, e sugli altri file (post, newsletter, etc...) l'applicazione scrive e legge correttamente, il mio web.config si trova a livello di root.

Ti ringrazio anticipatamente per ogni tuo possibile suggerimento, probabilmente altri come me avranno avuto problemi di permessi per BE.NET su hosting aruba e forse la cosa potrebbe interessare altri utenti.

Infine grazie per l'ottimo lavoro che svolgi per migliorare BE.NET.

P.S. un'ultima domanda: il problema dei permessi può coinvolgere anche il mancato invio dell'e-mail della newsletter al salvataggio di un nuovo post?
Cristiano
Cristiano
23 feb 2010 alle 09:00  02
@ Giorgio Borelli:
E' un problema noto e coinvolge al momento solo gli hosting Aruba. In realtà la modifica viene effettuata sul file XML relativo alla configurazione delle estensioni (sul quale si hanno i permessi di scrittura).
Successivamente viene interessato dall'aggiornamento anche il Web.Config per motivi che non ho mai approfondito, anche perchè come hai potuto verificare, poi tutto funziona correttamente.
I permessi di lettura/scrittura li puoi cambiare anche tu dal pannello di amministrazione del tuo hosting, ma temo che il Web.Config venga bloccato da ASP.NET la livello amministrativo superiore.

Il bug relativo all'invio della newsletter al salvatggio del post, che mi risulti, dovrebbe essere stato risolto proprio con l'ultima versione di BlogEngine.NET, ma non ti so dare certezza perchè è una funzionalità che non utilizzo (al suo posto uso il servizio analogo fornito da Feedburner)
Maurizio
Maurizio
10 mar 2010 alle 18:26  03
Ciao Cristiano,
ho installato il file labels.it.resx ma, come potrai vedere direttamtente dal link allegato, mi traduce tutto tranne i NOMI DEI MENU.
Non ho capito come mai ..
Hai idea ? Io ho controllato il contenuto del file e mi sembra tutto ok ....
Ti ringrazio
Cristiano
Cristiano
11 mar 2010 alle 09:21  04
@ Maurizio :
Il problema non è nel file di risorse, ma nel tema che utilizzi. Devi verificare che nella sezione relativa al menù di intestazione siano usati i riferimenti alle label definite appunto tramite le risorse, e non vi siano, invece, dei semplici testi in inglese.
Maurizio
Maurizio
11 mar 2010 alle 11:43  05
@Cristiano:
Grazie mille, era proprio una sciocchezza, ho risolto...
Maurizio

Aggiungi Commento

biucitecode
  • Commento
  • Anteprima
Loading


| |   |  

Codice QR

Codice QR - cristianofino.net

Ultimi Commenti