di Alessio Leoncini, in Silverlight 2.0, 6 novembre 2008
Dopo il rilascio della versione RTW di Silverlight 2.0 è possibile utilizzare il plugin in ambienti di produzione sfruttandone appieno le funzionalità.
Per eseguire l'istanza del plugin nelle pagine è necessario che il webserver abbia l'estensione XAP mappata correttamente al MIME type "application/x-silverlight-app".
Questa operazione deve essere eseguita nel pannello di configurazione del corrispondente webserver, qualora si abbia accesso diretto alla macchina è possibile procedere in autonomia all'operazione, nel caso di ambienti di hosting questa attività deve essere eseguita dagli amministratori di sistema.
Vista la recente release del plugin può capitare che non tutti i mantainer abbiano ancora eseguito questa registrazione, in tal caso in IIS 6.0 è possibile utilizzare lo stesso il plugin realizzando uno specifico HttpHandler:
namespace XAPHandler
{
public class XAPHandler : IHttpHandler
{
public bool IsReusable
{
get { return false; }
}
public void ProcessRequest(HttpContext context)
{
context.Response.Clear();
string xapName = context.Request.QueryString["xap"];
if (!String.IsNullOrEmpty(xapName))
{
string xapFile = String.Format("clientbin/{0}", xapName);
string attachment = string.Format("attachment; filename={0}", xapFile);
context.Response.ContentType = "application/x-silverlight-app";
context.Response.AddHeader("Content-disposition", attachment);
context.Response.TransmitFile(xapFile);
}
}
}
}
Come ogni HttpHandler deve essere registrato nel web.config del sito web che ospita l'applicazione Silverlight all'interno del nodo system.web:
<httpHandlers>
<add type="XAPHandler.XAPHandler,XAPHandler" verb="GET" path="xap.ashx"/>
</httpHandlers>
Nel precedente codice vengono associate le chiamate di uno specifico file "xap.ashx" in modo che siano gestite dalla classe XAPHandler. È necessario utilizzare un tipo di estensione (ashx) che sia già mappata in IIS con una ISAPI di ASP.NET in modo che le richieste di questo tipo di risorse entrino nel ciclo di gestione dell'engine di ASP.NET.
La classe XAPHandler si occupa di recuperare i valori in querystring corrispondenti al nome del file XAP dell'applicazione Silverlight e di aggiungerli al contesto di risposta specificando il corretto ContenType (application/x-silverlight-app). L'istruzione TransmitFile scrive concretamente lo stream del file nell'output di risposta.
Realizzato e registrato l'HttpHandler è possibile istanziare un'applicazione Silverlight con il seguente codice:
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
<param name="source" value="xap.ashx?xap=26.xap"/>
...
Per coloro che hanno la possibilità di utilizzare IIS7 su Window Server 2008 possono sfruttare una delle più utili caratteristiche della nuova versione del web server: procedere alla mappatura dell'estensione XAP direttamente nel web.config con la seguente istruzione:
<system.webServer>
<staticContent>
<mimeMap fileExtension=".xap" mimeType="application/x-silverlight-app"/>
</staticContent>
</system.webServer>
- #16 - Mostrare finestre di alert e di conferma in Silverlight 2.0
- #2 - Estendere il plugin a tutta l'area della finestra del browser
- Disponibile il codice sorgente di Moonlight
- #20 - Animazione con effetto elastico in Silverlight 2.0
- Deep Zoom Composer per MultiScaleImage di Silverlight 2B2
- Rilasciata la versione RTM di Windows Vista SP1
- #27 - Gestione immagini in Silverlight 2.0
- #21 - Gestire la sovrapposizione di forme con Expression Blend
- #944 - Inviare file di grandi dimensioni con un HttpHandler di ASP.NET
- Le evoluzioni del Web che non capisco
- #3 - Messaggio di installazione del plugin Silverlight nella lingua dell'utente
- Silverlight tira
Esprimi il tuo giudizio su questo script:
Per procedere devi essere autenticato.
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.




















Stampa
Download


