2011-07-12 4 views
2

Je développe actuellement une petite application dans Silverlight, et récemment pour l'essayer, j'ai activé le déploiement hors navigateur pour mon application. Cependant, maintenant que j'ai désactivé le paramètre, l'exécution de l'application génère désormais une exception dès qu'elle se termine.Activer Silverlight Out-of-navigateur brise l'application dans le navigateur

Une exception non gérée ('Unhandled Erreur dans l'application silverlight code: 4004 Catégorie: ManagedRuntimeError Message: System.Reflection.TargetInvocationException:. Une exception est survenue lors de l'opération, ce qui

le résultat invalide Toutefois, si Je viens d'ouvrir le navigateur TestPage.html dans l'application fonctionne toujours comme il l'a fait.

Des idées? Merci

+0

C'est bizarre! Avez-vous essayé de définir un point de rupture au début de votre code Silverlight et de voir si vous pouvez obtenir une ligne à laquelle il échoue? – NickHeidke

+0

J'ai fait, et a obtenu l'erreur dans App.xaml.cs juste après le constructeur. J'ai créé un nouveau projet Silverlight et copié tous les fichiers .xaml et .cs, et cela fonctionne comme d'habitude. Toujours serait intéressé de trouver le problème. – MarkNach

+0

Affichez l'exception InnerException de cette exception. C'est ce qui a vraiment mal tourné. –

Répondre

0

J'ai trouvé le problème. Je ne sais pas pourquoi l'activation hors navigateur puis retourner nécessaire, mais l'ajout d'un fichier clientaccesspolicy.xml au projet .web

<?xml version="1.0" encoding="utf-8"?> 
<access-policy> 
    <cross-domain-access> 
    <policy> 
     <allow-from http-request-headers="SOAPAction"> 
     <domain uri="*"/> 
     </allow-from> 
     <grant-to> 
     <resource path="/" include-subpaths="true"/> 
     </grant-to> 
    </policy> 
    </cross-domain-access> 
</access-policy> 

résolu le problème.

0

Par exemple, essayez d'entrer la ligne suivante dans le Application_Unhan Méthode dledException de App.Xaml.cs (code-behind de l'App.Xaml) "MessageBox.Show (e.ExceptionObject.Message);". Cela pourrait vous donner une idée de ce qui ne va pas lorsque le débogueur n'est pas encore connecté au navigateur. Acheter le chemin, Dans Visual Studio, vous pouvez attacher le débogueur manuellement à votre navigateur dans le menu de débogage -> Attacher au processus ..., puis choisissez le processus avec le type "Silverlight, x86" par exemple.

private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e) 
    { 
     MessageBox.Show(e.ExceptionObject.Message); 
     // If the app is running outside of the debugger then report the exception using 
     // the browser's exception mechanism. On IE this will display it a yellow alert 
     // icon in the status bar and Firefox will display a script error. 
     if (!System.Diagnostics.Debugger.IsAttached) 
     { 

      // NOTE: This will allow the application to continue running after an exception has been thrown 
      // but not handled. 
      // For production applications this error handling should be replaced with something that will 
      // report the error to the website and stop the application. 
      e.Handled = true; 
      Deployment.Current.Dispatcher.BeginInvoke(delegate { ReportErrorToDOM(e); }); 
     } 
    } 
Questions connexes