Pur non essendo un caso frequente, può capitare di dover ospitare un applicazione Silverlight proveniente da un dominio diverso dalla pagina host.
Un esempio può essere: Pagina html ospitata nel domino foo.com la quale ha al suo interno qualcosa del genere:

<div id="silverlightControlHost">
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
<param name="source" value="http://www.anothersite.com/myapp.xap"/>
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="4.0.41108.0" />
<param name="autoUpgrade" value="true" />
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.41108.0" style="text-decoration:none">
<img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
</a>
</object>
<iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div>

Il fatto che l’applicazione provenga da un dominio diverso (anothersite.com nello snippet precedente) genera una situazione di cross-domain hosting la quale può creare qualche problema di funzionamento (o non permettere nemmeno lo start dell’applicazione in alcuni casi)

La soluzione è in realtà abbastanza semplice e consiste nell’impostare a true il parametro enableHTMLAccess del plug-in in questo modo:

 

<param name="enableHtmlAccess" value="true" />
 
il quale viene automaticamente impostato a true quando l’applicazione proviene dallo stesso dominio della pagina host.
Dalla documentazione sembrerebbe che questo parametro abiliti esclusivamente l’interazione tra l’applicazione e il DOM della pagina host, in realtà dalle prove effettuate oggi questa controlla anche l’interazione con tutto il browser stack, percui, se come nel mio caso utilizzate la classe WebClient per interagire col server la chiamata viene immediatamente interrotta con le relative conseguenze per l’intera applicazione.
 
Non capita spesso, ma se capita, ricordatevi questo post…