Massimo Prota's BLog

Nothin' but .NET
posts - 46, comments - 46, trackbacks - 6

My Links

News

View Massimo Prota's profile on LinkedIn Rapid Circle

Archives

Post Categories

Blogs

Links

giovedì 5 marzo 2009

MOSS e l’arte di parlare per eccezioni [#5]

E’ stato recentemente pubblicato un articolo di KB relativo al comando restore di stsadm e quindi riguardante WSS/MOSS su un problema che viene trattato anche dall’articolo con una certa leggerezza ma che secondo me può essere molto dannoso e anche in questo caso il messaggio di errore nasconde qualcosa…

stsadm can inadvertently delete a root site collection if erroneous URL path used

Inadvertently vicino a delete e root site collection è simpatico :)

Con il più classico (default) degli esempi abbiamo creato il nostro portale senza creare managed paths e quindi abbiamo la root site collection sotto http://myserver e tutti le altre site colls sotto /sites/site1, /sites/site2, ecc…

Dobbiamo restorare un backup di una site collection secondaria per ripristinare versioni precedenti, per riorganizzare la nostra gerarchia o perchè vogliamo rinominarla (cambiargli URL) (sì questo è l’unico modo). Quindi

stsadm -o restore -url http://myserver/sites/sitename -filename DRIVE:\file.bak -overwrite

e l’articolo ci dice che se sbagliamo qualcosa nel parametro url ad esempio sites riceviamo il messaggio che non ci sono content databases disponibili ad ospitare il sito:

ERROR:
    No content databases are available for this operation. Create a content database , and then try the operation again. To create a content database, click "Content databases" on the Application Management page, select the Web application to use, and then click "Add a content database".

Il che può risultare poi curioso quando si va nell’amministrazione dei content databases e si nota che il default creato ne ha all’incirca ancora 14.995 disponibili.
Il pegno di questo mistyping si paga caro invece e lo si nota andando col browser all’indirizzo http://myserver (portale principale dell’azienda, divisione, .com) e scoprendo che la site collection principale appunto è stata eliminata senza possibilità di recuperarla.

Ma un altro caso simile altrettanto grave e pericoloso sempre col parametro –overwrite che non viene citato nell’articolo accade quando ci dimentichiamo di creare un managed path e stiamo sempre spostando le nostre site colls, ed eseguiamo prima restore senza –overwrite

stsadm -o restore -url http://myportal/divisions/admin/finance -filename DRIVE:\finance.bak

perchè stiamo spostando la site coll finance sotto administration mentre prima stava da un’altra parte e otteniamo:

Another site already exists at ‘/divisions/admin/finance’. Choose a new URL, or specify the –overwrite flag to overwrite flag to overwrite the existing site.

In realtà nessun sito esiste a ‘/divisions/admin/finance’, ma ci siamo dimenticati di creare il managed path (che funzionano all’inverso rispetto a WSSv2/SPS) e le inclusioni vanno esplicitate.

Comunque fino qui tutto bene… (cit.), non ci è stato cancellato nulla, ma non riusciamo a navigare la nostra finance e il restore non è andato su. Decidiamo quindi di seguire il consiglio di stsadm e provare con il –overwrite (magari è come -uninstallfeature che il –force ci va sempre :D)

stsadm -o restore -url http://myportal/divisions/admin/finance -filename DRIVE:\finance.bak –overwrite

Operation completed succesfully.

Perfetto. Andiamo a navigare finance e scopriamo che finance non è disponibile, ma in compenso se navighiamo admin scopriamo che questo è stato sovrascritto con il backup di finance. Se, avvicinando questo caso a quello dell’articolo: abbiamo creato correttamente il managed path, ma sbagliamo a digitare divisions otteniamo un messaggio di successo, ma non riusciamo a navigare finance e abbiamo la root site collection sovrascritta.

In tutti questi casi l’errore, la dimenticanza o la leggerezza ci può costare molto cara.. Se siamo/sono stati bravi un disaster recovery e un ritorno all’ultimo backup, della site collection o del content DB.

Quindi la regola è: se quello che hai scritto non è valido ti cancello o sovrascrivo la prima cosa buona che riesco a trovare.

posted @ giovedì 5 marzo 2009 1.05 | Feedback (0) |

venerdì 12 dicembre 2008

[MOSS] Critical vulnerability

Da pochi giorni è stata segnalata e rilasciata la relativa patch per una vulnerabilità critica per SharePoint Server 2007 che può portare a privilege escalation. La vulnerabilità affligge solo MOSS e non quindi i WSS V3 gratuiti, essendo correlata al componente SSP non presente appunto in WSS.

L’articolo di supporto correlato è il 957175 e il relativo bullettin MS08-77

Installare quindi al più presto la patch relativa (che è abbastanza corposa) su tutti i servers che compongono la farm e al termine eseguire il Product and Technologies Configuration Wizard tenendo come sempre le dita incrociate per tutto il tempo dell’operazione.

posted @ venerdì 12 dicembre 2008 12.55 | Feedback (2) |

giovedì 12 giugno 2008

MOSS e l'arte di parlare per eccezioni [#4]

Anche durante il setup MOSS può presentare sorprese e mostrare errori che poi si scopre non corrispondere esattamente quelli mostrati (che è il leit motiv di questa serie di post).

In questo caso, durante appunto l'operazione di setup di un nuovo MOSS e più precisamente in caso di setup di una farm, può capitare che durante l'aggiunta di un server alla farm tramite lo SharePoint Products and Technologies Configuration Wizard (psconfig) l'operazione fallisca sollevando una SecurityException con un semplice messaggio Access denied, suggerendo di verificare all'interno del log PSCDiagnostics (il Post Setup Configuration log di psconfig appunto) per il dettaglio dell'errore. Guardando dentro questo file non si trova invece nessun dettaglio, anzi non si trova proprio nessun errore, ma solo il logging di vari messaggi di informazione di setup (INF). Guardando invece all'interno dei log del ULS si trova effettivamente un maggiore dettaglio dell'errore e lo stack trace:

The SPPersistedObject, SPServer Name=yourserver Parent=SPFarm Name=SharePoint_Config, could not be updated because the current user is not a Farm Administrator.    

Stack:    at Microsoft.SharePoint.Administration.SPPersistedObject.Update()

Per cui sembrerebbe ovvio verificare l'appartenenza dell'utente con il quale si stanno effettuando le operazioni tra i farm administrators: Central Admin -> Operations -> Update farm administrator's group (o People and Groups della Central Admin application). Eppure ho ricevuto questo stesso errore per due volte in due setup distinti e in entrambi l'utenza apparteneva correttamente al gruppo di amministratori della farm; ciò che ha causato l'errore è stato invece:

  1. Il server che cercava di fare join nella farm non era allineato perfettamente come versione (service pack, hotfix) agli altri server della farm. Verificare quindi la versione dei servers già nella farm da Central Admin -> Operations -> Servers in Farm e del server che deve fare join tramite la chiave registry HKLM\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\12.0. In questo post una lista di version number.
  2. L'utente pur essendo farm administrator non aveva i necessari diritti sul SQL Server. L'utente dovrebbe avere almeno il ruolo di securityadmin e avere i necessari diritti per aggiornare le tabelle dei db di configuration e di central admin.

posted @ giovedì 12 giugno 2008 17.52 | Feedback (0) |

martedì 18 marzo 2008

[SPD Workflows] Manipolazione JS e validazione di custom Collect Data forms

Esiste un bug bello e buono che riguarda la validazione dei campi all'interno dei Tasks generati con la action Collect Data from a User per cui non è possibile gestire correttamente l'input utente o l'obbligatorietà di un campo (sono i casi più frequenti), sia per quanto riguarda i field standard che eventuali custom field. Il supporto non era riuscito a darci una risposta o un workaround per il problema.

Dopo essermi operato un po' e immensamente grazie a questo post di Rob Howard: Using Javascript to Manipulate a List Form Field son riuscito a trovare un workaround per poterlo gestire tramite JS; non è il massimo ma funziona e diciamo che è una buona scialuppa di salvataggio.

Ho postato il tutto a suo tempo sul forum dedicato di MSDN e riporto quindi solo il link al post: Collect data from a User - Validation Bug

Non so se questo bug sia stato fixato con la SP1 di MOSS (non ho ancora avuto modo di lavorarci), ma non l'ho visto menzionato nella lista delle fix e solitamente il supporto lo specifica in risposta al caso quando è così.

posted @ martedì 18 marzo 2008 7.11 | Feedback (0) |

lunedì 10 marzo 2008

SPC 08 - The End

L'ultima mezza giornata è trascorsa in modo molto leggero, con solo un paio di sessioni. La prima in cui è stato spiegato come e cosa il supporto Microsoft utilizza nell'analisi dei problemi, quali informazioni collezionare e fornire; questione che mi interessava avendoci avuto a che fare negli ultimi mesi per dei problemi molto strani verificatisi. Pur essendo una sessione di livello 200 sono state mostrate diverse questioni tecniche e tools, come ad esempio NetMon e WireShark per l'analisi del traffico e dei problemi di rete. Una cosa tanto banale quanto utile, ma a cui non avevo mai pensato è utilizzare Excel per analizzare i dati del ULS per poter più agevolmente filtrare/ordinare i dati piuttosto che analizzarli come flat text files (vista anche la loro grande dimensione solitamente).

L'altra sessione, firmata Ted Pattison, riguardante la 'Security Under the Hood' di MOSS di livello 400, non ha invece parlato di ciò che avevo immaginato dall'abstract, ma è stata comunque precisissima (come quella del giorno prima) e ha trattato principalmente di argomenti di autenticazione; come funziona e come posiziona correttamente la FBA (Form Based Authentication) e varie best practices sulla corretta configurazione di web applications e zone sempre incentrate sull'autenticazione degli utenti intranet/extranet.

Nel pomeriggio abbiamo approfittato della mezza giornata libera e soprattutto del cambio dollaro molto favorevole per fare una spedizione italiana e saccheggiare un moll/outlet fuori città. Ora penso tutti gli altri italiani siano ormai rientrati o stiano rientrando, io mi fermerò qui ancora una settimana per visitare un po' da turista Seattle e qualche città nei dintorni (Redmond ad esempio? Smile), sempre che il mio stomaco mi supporti e mi sposterò poi in Florida per vacanza. Spero di avere finalmente, anzi di non avere nulla da fare e se la noia sarà veramente troppa ne approfitterò per scrivere e pubblicare qualche cosa riguardo a MOSS in sospeso da troppo tempo.

Seattle è molto interessante e meno piovosa di come si era presentata i primi giorni per fortuna; il passaggio all'ora legale già avvenuto oggi qui dovrebbe renderla poi un po' più luminosa e "calda" nel pomeriggio. Qui comunque ti puoi stupire ogni volta che giri l'angolo e non solo perchè le condizioni meteo possono cambiare... In questa città dove leggendo il principale news blog online trovi in prima pagina notizie del tipo:

posted @ lunedì 10 marzo 2008 8.05 | Feedback (2) |

giovedì 6 marzo 2008

SPC 08 Day 3

Per iniziare una sessione sui benefici e le novità correlate a WSS/MOSS con l'introduzione di Windows e SQL Server 2008; una veloce leggera e precisa panoramica condotta ottimamente da Joe Oleson e Bob Fox. Le novità sono davvero tante, ma è la normale evoluzione dei sistemi e l'orchestrazione dei sistemi base che offrono sempre più funzionalità specifiche o utili a un altro prodotto (il che non è comunque sempre scontato in MS...).

Una vera sessione dev 400, di quelle 90% codice duro di Steve Peschka sull'utilizzo di LINQ e AJAX in MOSS, roba da audaci o virtuosi di JS per quanto riguarda AJAX e più o meno cose che si vedono solitamente con LINQ. Poco a che fare in realtà con MOSS, anche le demo infatti per la maggior parte all'interno di windows application (forse per non doversi inventare qualche battuta aspettando i recycle di IIS?). Strano comunque vedere una delle sale più grandi quasi piena per una sessione di questo livello, almeno 400 persone credo, anche se man mano la sala si è andata svuotando e diverse anche le vittime in sala Open-mouthed

Ted Pattison nella sua presentazione dedicata al deploy delle soluzioni con MOSS ha ripetuto diverse cose presentate da Andrew ieri, sulla pacchettizzazione dei componenti e dei vari tool scaricabili per semplificare questo lavoro, spiegandole in modo più approfondito visto il minor numero di argomenti trattati. L'indicazione rimane FEATURES FEATURES FEATURES e solutions.

posted @ giovedì 6 marzo 2008 10.07 | Feedback (0) |

mercoledì 5 marzo 2008

SPC 08 Day 2

Oggi finalmente una ottima sessione che è riuscita a farmi capire che certe limitazioni, certi dubbi non li ho incontrati solo io, ma soprattutto l'errato approccio nello sviluppo e nel deploy di soluzioni WCM/publishing su MOSS non li ho compiuti solo io, ma è il percorso normale che si compie se non si conoscono strade migliori o le si evitano per mancanza di tempo pagandone poi le conseguenze. La sessione è stata presentata da Andrew Connell quindi già il nome dovrebbe bastare a garantire la qualità e ha affrontato appunto il problema di come strutturare lo sviluppo di una soluzione WCM su MOSS preparandosi in modo da evitare orrori, di poter utilizzare Visual Studio e non SharePoint Designer (siamo dev no?) che può voler dire anche SDL e ancor più importante di essere pronti e evitare spiacevoli soprese/tricks al momento di dover fare deploy di quanto realizzato. Per farla molto breve sto parlando di Site Columns, Content Types, Page Layout e Master Pages e ha quindi mostrato come poter realizzare, gestire, pacchettizzare tutto questo con VS; utilizzando mezzo chilo di estensioni e tools tra quelli realizzati da lui e quelli reperibili su CodePlex. Per tutti quelli che realizzano o devono realizzare progetti WCM o sfruttare questi elementi di MOSS combinati alla feature di publishing e vogliono farlo in modo consapevole consiglio assolutamente di scaricare le slides della sessione e seguire il suo blog.

Per il resto niente di particolarmente degno di nota, di prima mattina una sessione su come migrare un workflow realizzato con lo SharePoint Designer all'interno di Visual Studio in cui lo speaker ha mostrato grandi doti di Find&Replace Oriented Programming impiegandoci un'ora a migrare un workflow con una sola standard action e una form di collect. Molti ninja tricks utilissimi se vi doveste trovare in questa situazione, ma il mio consiglio è assolutamente di non andarvici a mettere se ne avete la possibilità!

Tra una sessione e l'altra ho avuto anche modo di certificarmi MCTS MOSS Application Development superando l'esame 70-542 a tempo di record (55 domande in ~60 minuti) perchè pensavo che la sessione di Andrew fosse prima di pranzo. Comunque l'esame è abbastanza tosto, ad esempio tra gli argomenti: BDC (molto), Search Service e customizzazione dei risultati, KPI e Excel Web Services.

posted @ mercoledì 5 marzo 2008 9.07 | Feedback (3) |

martedì 4 marzo 2008

SPC 08 Day 1

Come molti di voi non sapranno mi trovo a Seattle per seguire la SharePoint Conference 2008 che ha avuto inizio oggi. La keynote di apertura di BillG (di cui è possibile vedere la registrazione) non ha portato grandi annunci (no Office 1X, SharePoint 200X), se non quello della nuova possibilità di fruire la piattaforma anche in modalità online. Ha voluto sottolineare la vastità degli ambiti che la piattaforma copre e quanto si stia diffondendo in particolar modo nel mondo enterprise (come dargli torto?); molto sicuro nel rispondere al Q&A su domande anche abbatanza tecniche, ma immagino scelte o filtrate a priori. La seconda keynote invece meno precisa e interessante, ma con qualche effetto Search + Silverlight in particolare per stupire un po' il pubblico. Entrambe hanno visto la partecipazione di Tom Rizzo (PM di Office) che ha egregiamente affiancato BillG e Kurt DelBene mostrando qualche demo.

Precisi e lisci nelle loro sessioni Patrick Tisseghem e Andrew Connell, rispettivamente su integrazione di Silverlight con SharePoint e sull'utilizzo di MOSS per il content management e il publishing; ma come c'era da aspettarsi poco poco codice.

Unica sessione con target dev e di livello 400 della giornata di Arthur Brost sulla personalizzazione delle List Forms e cenni sulla realizzazione di custom fields argomento su cui ho già avuto modo di lavorare per diverso tempo e a cui ero molto interessato. La sessione è stata ben condotta considerando anche l'audience in sala molto vario, ma ho potuto constatare e avere conferma dei limiti della piattaforma per lo sviluppo che sostengo da tempo: solution che compilano una volta sì e una no (senza modifiche), difficoltà a scovare l'errore (principalmente perchè non viene mostrato) e in demo non è bello. In questo la piattaforma non è per niente matura, lo ribadisco ancora una volta, servono dei tool di sviluppo seri.

A parte questo la conferenza è veramente di livello globale, 3800+ partecipanti da ogni angolo del mondo; per me è la prima volta a Seattle e negli USA e sono abbastanza come me l'aspettavo e come da racconti, ma comunque impressionante nel bene e nel male: piove, si mangia tanto e a caso, i tombini fumano e l'acqua dello scarico gira in senso antiorario <g>

posted @ martedì 4 marzo 2008 8.15 | Feedback (2) |

venerdì 11 gennaio 2008

MOSS e l'arte di parlare per eccezioni [#3]

L'errore che riporto questa volta non è una vera e propria eccezione, ma è comunque un messaggio di errore non molto chiaro e abbastanza curioso come descrizione. Ho incontrato questo problema lavorando con la feature di variation, che permette (in due parole) di gestire i "rami" di un sito per la creazione di multilingua/multidevice replicando in automatico le pagine del sito di master variation nei siti localizzati.

Nel momento in cui andiamo a definire la gerarchia, creando una nuova variation label (ovvero una nuova lingua), viene creato in automatico il site che ospiterà i contenuti e su cui agisce il variation job che si occupa della replica.

Purtroppo nell'eseguire questa operazione potrebbe capitare il seguente errore:

An error was encountered performing this operation.

You may re-try the operation, and you may need to clean up the half-created data first before re-trying. If the problem persists, please contact your system administrator

Che tradotto sarebbe: C'è stato un errore, non so dirti che cosa. Se vuoi potresti provare a ritentare, ma siccome non sono transazionale potresti dover eliminare dei dati che ho creato a metà prima di riprovare. Comunque se il problema persiste, come sempre, chiedi al sysadmin

 

Per correggere il problema provate a:

Come sempre buona fortuna e molta attenzione visto che l'installazione dei language packs non è proprio una questione indolore, necessita infatti anche dell'esecuzione dello SharePoint Products and Technologies Configuration Wizard. Backuppate backuppate backuppate

UPDATE:

  • è molto importante verificare prima di compiere queste operazioni che le label e la gerarchia di variation sia stata correttamente creata. Vi rimando a questo post che spiega ottimamente la questione
  • Quel messaggio di errore è un messaggio standard per i "Long running operation job" (la documentazione è praticamente inesistente) che sono un'opportunità esposta molto utile di cui spero di parlare in un post o articolo dedicato.

posted @ venerdì 11 gennaio 2008 18.20 | Feedback (2) |

lunedì 7 gennaio 2008

MOSS e l'arte di parlare per eccezioni [#2]

Continuo la serie degli errori non proprio parlanti di SharePoint 2007 con uno degli errori più frequenti, misteriosi e che mi han fatto perdere più tempo a cercare di capire da chi o cosa era causato.

Modificando e visualizzando una pagina si può incorrere da un momento all'altro in un errore generico causato da qualche modifica alla pagina, ma non è sempre semplice capire perchè questo errore si verifica o come agire risolverlo.

Il messaggio d'errore è un generico "Value does not fall within the expected range", una ArgumentException che sostanzialmente sta a significare: "c'è qualcosa che non va, probabilmente un errore di sintassi, per cui non riesco a validare e caricare la pagina dal DB".

Lo stack trace solitamente è molto simile o uguale a questo sotto riportato e come potete vedere non aiuta molto:

[ArgumentException: Value does not fall within the expected range.]
   Microsoft.SharePoint.Library.SPRequestInternalClass.GetFileAndMetaInfo(String bstrUrl, Byte bPageView, Byte bPageMode, Byte bGetBuildDependencySet, String bstrCurrentFolderUrl, Boolean& pbCanCustomizePages, Boolean& pbCanPersonalizeWebParts, Boolean& pbCanAddDeleteWebParts, Boolean& pbGhostedDocument, Boolean& pbDefaultToPersonal, String& pbstrSiteRoot, Guid& pgSiteId, UInt32& pdwVersion, String& pbstrTimeLastModified, String& pbstrContent, Byte& pVerGhostedSetupPath, UInt32& pdwPartCount, Object& pvarMetaData, Object& pvarMultipleMeetingDoclibRootFolders, String& pbstrRedirectUrl, Boolean& pbObjectIsList, Guid& pgListId, UInt32& pdwItemId, Int64& pllListFlags, Boolean& pbAccessDenied, Guid& pgDocId, Byte& piLevel, UInt64& ppermMask, Object& pvarBuildDependencySet, UInt32& pdwNumBuildDependencies, Object& pvarBuildDependencies, String& pbstrFolderUrl, String& pbstrContentTypeOrder) +0
   Microsoft.SharePoint.Library.SPRequest.GetFileAndMetaInfo(String bstrUrl, Byte bPageView, Byte bPageMode, Byte bGetBuildDependencySet, String bstrCurrentFolderUrl, Boolean& pbCanCustomizePages, Boolean& pbCanPersonalizeWebParts, Boolean& pbCanAddDeleteWebParts, Boolean& pbGhostedDocument, Boolean& pbDefaultToPersonal, String& pbstrSiteRoot, Guid& pgSiteId, UInt32& pdwVersion, String& pbstrTimeLastModified, String& pbstrContent, Byte& pVerGhostedSetupPath, UInt32& pdwPartCount, Object& pvarMetaData, Object& pvarMultipleMeetingDoclibRootFolders, String& pbstrRedirectUrl, Boolean& pbObjectIsList, Guid& pgListId, UInt32& pdwItemId, Int64& pllListFlags, Boolean& pbAccessDenied, Guid& pgDocId, Byte& piLevel, UInt64& ppermMask, Object& pvarBuildDependencySet, UInt32& pdwNumBuildDependencies, Object& pvarBuildDependencies, String& pbstrFolderUrl, String& pbstrContentTypeOrder) +215
   Microsoft.SharePoint.SPWeb.GetWebPartPageContent(Uri pageUrl, PageView requestedView, HttpContext context, Boolean forRender, Boolean includeHidden, Boolean mainFileRequest, Boolean fetchDependencyInformation, Boolean& ghostedPage, Byte& verGhostedPage, String& siteRoot, Guid& siteId, Int64& bytes, Guid& docId, UInt32& docVersion, String& timeLastModified, Byte& level, Object& buildDependencySetData, UInt32& dependencyCount, Object& buildDependencies, SPWebPartCollectionInitialState& initialState, Object& oMultipleMeetingDoclibRootFolders, String& redirectUrl, Boolean& ObjectIsList, Guid& listId) +1533
   Microsoft.SharePoint.ApplicationRuntime.SPRequestModuleData.FetchWebPartPageInformationForInit(HttpContext context, SPWeb spweb, Boolean mainFileRequest, String path, Boolean impersonate, Boolean& fGhostedPage, Byte& verGhostedPage, Guid& docId, UInt32& docVersion, String& timeLastModified, SPFileLevel& spLevel, String& masterPageUrl, String& customMasterPageUrl, String& webUrl, String& siteUrl, Guid& siteId, Object& buildDependencySetData, SPWebPartCollectionInitialState& initialState, String& siteRoot, String& redirectUrl, Object& oMultipleMeetingDoclibRootFolders, Boolean& objectIsList, Guid& listId, Int64& bytes) +691
   Microsoft.SharePoint.ApplicationRuntime.SPRequestModuleData.FetchWebPartPageInformation(HttpContext context, String path, Boolean impersonate, Boolean& fGhostedPage, Byte& verGhostedPage, Guid& docId, UInt32& docVersion, String& timeLastModified, SPFileLevel& level, String& masterpageUrl, String& customMasterPageUrl, String& webUrl, String& siteUrl, Guid& siteId, Object& buildDependencySetData) +132
   Microsoft.SharePoint.ApplicationRuntime.SPRequestModuleData.GetWebPartPageData(HttpContext context, String path, Boolean throwIfFileNotFound) +773
   Microsoft.SharePoint.ApplicationRuntime.SPVirtualFile.GetFile(String virtualPath, Boolean fetchContent) +78
   Microsoft.SharePoint.ApplicationRuntime.SPVirtualFile.GetFile(String virtualPath) +30
   Microsoft.SharePoint.ApplicationRuntime.SPVirtualPathProvider.GetFile(String virtualPath) +171
   System.Web.Hosting.VirtualPathProvider.GetFile(String virtualPath) +18
   System.Web.Hosting.VirtualPathProvider.GetFileWithCheck(String virtualPath) +11
   System.Web.FormatterWithFileInfo.GetSourceFileLines(String fileName, Encoding encoding, String sourceCode, Int32 lineNumber) +229
   System.Web.DynamicCompileErrorFormatter.get_MiscSectionContent() +926
   System.Web.ErrorFormatter.GetHtmlErrorMessage(Boolean dontShowSensitiveInfo) +837
   System.Web.HttpResponse.WriteErrorMessage(Exception e, Boolean dontShowSensitiveErrors) +820
   System.Web.HttpResponse.ReportRuntimeError(Exception e, Boolean canThrow, Boolean localExecute) +560
   System.Web.HttpRuntime.FinishRequest(HttpWorkerRequest wr, HttpContext context, Exception e) +333

 

Elenco di seguito un po' di note su cosa e come cercare di risolvere l'errore in base a quello che l'esperienza mi ha insegnato:

  • La pagina che state cercando di visualizzare ha un errore di compilazione o di parsing
    • controllate la direttiva di pagina, potrebbe mancare un Language="C#"
    • sempre nella direttiva di pagina verificate che la classe da cui si eredita (Inherits="...") sia specificata con la sua full identity ("<classname>, <assembly>, <version>, <culture>, <publickeytoken>")
    • manca o è sbagliato un tag <%@ Reference ... %> o <%@ Assembly ... %> per un controllo utilizzato nella pagina
    • manca o è sbagliata una direttiva <%@ Import ... %>
  • Se la vostra pagina utilizza un controllo non standard potrebbe essere quello a mandare in errore la pagina, ma in questo caso lo stack trace dovrebbe riportare anche qualche riferimento al controllo e al metodo in cui è avvenuto errore
  • Valgono poi tutti i metodi di risoluzione standard che solitamente si applicano a un errore:
    • un bel resettone
    • N refresh
    • eliminare e fare nuovamente upload della pagina
    • procedendo per sottrazione eliminare i componenti all'interno della pagina e tutti i pattern Commando che avete ultimamente inserito

Buona fortuna

UPDATE 03/09/2008: è stato pubblicato un articolo di KB che descrive il problema e propone anche soluzioni e codice per risolverlo!

953445: Error message when you edit an .aspx Web page in SharePoint Server 2007: "Value does not fall within the expected range"

posted @ lunedì 7 gennaio 2008 15.49 | Feedback (0) |

Powered by: