2010-11-04 6 views
0

Je crée une application Silverlight qui utilise les balises <Button> et qui appelle le HtmlPage.Window.Navigate(new Uri("http://www.google.com")); au cours de l'événement Click.HtmlPage.Window.Navigate fonctionne dans le débogage, mais pas lors du déploiement

Dans le débogage, cela fonctionne très bien. Je peux cliquer sur le bouton et être redirigé vers l'emplacement demandé. Lors de la publication sur le serveur, l'exécution de l'action demandée échoue.

J'ai également essayé d'autres variantes, telles que l'appel de JavaScript via HtmlPage.Window.Invoke() ou simplement un rafraîchissement de la page en utilisant HtmlPage.Document.Submit(), mais les deux ne fonctionnent pas une fois poussés vers le serveur.

Je suis perplexe à ce stade. La seule différence réelle entre les deux endroits le fichier est exécuté sont:

  • L'application Silverlight est enveloppé dans une page MVC au lieu d'une page de test généré automatiquement
  • Il est également assis sur un port différent du serveur - Un je mis de côté pour mes tests .NET 4. La page MVC est activée: 80 et l'application Silverlight est activée: 81

Il semble presque que l'application Silverlight essaie d'interagir avec la page MVC au niveau JavaScript, mais elle échoue (et, bien sûr, ne renvoie aucune erreur visible). La raison pour laquelle je considère que c'est parce que, pendant que j'écrivais cela, j'ai essayé de faire apparaître une boîte de message via la commande MessageBox.Show() dans Silverlight - elle n'apparaissait pas.

D'autres idées que je peux essayer?

Répondre

2

Le fait que le port XAP sur le port 81 et votre JavaScript se trouve sur le port 80 en fait un appel interdomaines. Par défaut, Silverlight n'autorise pas l'interaction JavaScript entre domaines.

Jetez un oeil à la security settings pour ce genre de scénarios.

Je pense que dans votre cas, il sera nécessaire pour permettre l'accès HTML inter-domaines en utilisant enableHtmlAccess, comme ceci:

<div id="silverlightControlHost"> 
    <object data="data:application/x-silverlight-2," 
      type="application/x-silverlight-2" 
      width="300" height="100"> 
     <param name="source" 
       value="http://www.northwindtraders.com/MySample.xap"/> 
     <param name="enableHtmlAccess" value="true" /> 
    </object> 
</div> 
+0

Vous avez raison, je ne peux pas croire que je ne pas même envisager cette. Je viens de faire le changement que vous avez suggéré et cela a réglé le problème. Merci! –

Questions connexes