In questo periodo ho avuto l'occasione di utilizzare gran parte delle caratteristiche dei Word Automation Services di SharePoint 2010, per la conversione di documenti Word in altri formati. Nel mio caso, avevo la necessità di convertire un file Word in PDF.
Se non avete idea di che cosa siano i Word Automation Service o di come si usino vi rimando a queste pagine dell'SDK:

Riguardo questa funzionalità di SharePoint 2010 che, vi ricordo, è disponibile solamente nella versione Enterpise del prodotto, devo ammettere che la documentazione relativa è sicuramente un pò "povera" rispetto alle funzionalità offerte, soprattutto per quanto riguarda la risoluzione degli errori. Questo ve lo dico perchè proprio in questi giorni mi sono imbattutto in un particolare errore, mal documentato. Vi spiego meglio.
Ogni mia conversione falliva e l'errore riportato era il numero: 65543.
La documentazione dice che quel codice d'errore sta a significare che il file è corrotto oppure invalido. Lo potete leggere a questa pagina:
- http://msdn.microsoft.com/en-us/library/ff512774.aspx

A me pareva veramente strano che tutti i miei file fossero corrotti o invalidi, al punto che sono arrivato anche a crearne uno nuovo con dentro solo una riga di testo, per vedere se la conversione andava a buon fine o meno. Chiaramente senza nessun risultato positivo.
Controllando il modello ad oggetti però e cercando un pò su internet, sono riuscito a risolvere il problema. Basta solamente disabilitare una proprietà dei Word Automation Services, chiamata DisableSandbox, che specifica il contesto in cui deve girare la vostra service application. Di default ha valore "true", il che significa che di default i Word Automation Services girano all'interno del contesto ristretto delle sandbox, il che può portare ad errori di permessi o simili.
Nel mio caso, appunto, dal contesto limitato delle sandbox il servizio di conversione non riusciva ad accedere al file tramite una richiesta HTTP.

Per modificare questa configurazione, bastano tre semplici righe di codice all'interno di PowerShell:

$sp = Get-SPServiceApplication | where {$_.TypeName.Equals("Word Automation Services")}  

$sp.DisableSandbox = $true
$sp.Update()

Questo mini-script è presente anche all'interno della code gallery di Microsoft a questo indirizzo:
- http://gallery.technet.microsoft.com/scriptcenter/Remove-Sandbox-Mode-for-9c8ac750

Spero che possa esser utile a qualcuno, perchè io ci ho perso almeno un'ora dietro a sto scherzo :)