Première utilisation de Silverlight! Après un tutoriel en ligne. Je crée une application qui permet à l'utilisateur de rechercher des histoires sur le site Web de Digg à l'aide d'un client Web et de les afficher dans une grille de données dans un contrôle Silverlight.WebClient.DownloadStringAsync Lancement d'une exception de sécurité dans Silverlight
Voici le code:
private void btnSearch_Click(object sender, RoutedEventArgs e)
{
string topic = txtTopic.Text;
string diggUrl = String.Format("http://services.digg.com/stories/topic/{0}?count=20&appkey=http%3A%2F%2Fscottgu.com", topic);
WebClient diggService = new WebClient();
diggService.DownloadStringCompleted += new DownloadStringCompletedEventHandler(diggService_DownloadStringCompleted);
diggService.DownloadStringAsync(new Uri(diggUrl));
}
void diggService_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
if (e.Error == null)
{
DisplayStories(e.Result);
}
}
Chaque fois que je mets un point d'arrêt sur le gestionnaire d'événements diggService_DownloadStringCompleted
et cliquez sur le bouton de recherche e.Error
est toujours égal à un System.Security.SecurityException sans message et une exception intérieure du même tapez avec un message d'erreur de sécurité. La trace de pile est:
à System.Net.Browser.AsyncHelper.BeginOnUI (SendOrPostCallback beginMethod, l'état de l'objet)
à System.Net.Browser.BrowserHttpWebRequest.EndGetResponse (IAsyncResult asyncResult)
au système .Net.WebClient.GetWebResponse (demande WebRequest, IAsyncResult résultat)
à System.Net.WebClient.DownloadBitsResponseCallback (résultat IAsyncResult)
Après quelques googler lourds que j'ai vu peopl e mentionne un fichier crossdomain.xml. Pas tout à fait sûr de ce que c'est mais j'ai ajouté un au répertoire racine du serveur Web exécutant le contrôle Silverlight et ajouté le texte suivant. n'a fait aucune différence:
<?xml version="1.0" ?>
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
Que se passe-t-il?
Avez-vous résolu cela? J'ai le même problème – Andrew