2010-10-09 8 views
0

(rediffuser à cause de panne SO; excuses si l'autre réapparaît)Problème d'accès URI localhost de Silverlight

Je construis une application Silverlight qui se déroulera sur Azure. Ma solution VS a deux projets: le rôle web et Silverlight. Le rôle Web a un service qui fonctionne. (Je peux aller à localhost:88/expenseservice.svc/expenses et obtenir les données que je veux.)

Je suis en train d'accéder à ces données de Silverlight:

private void MainPage_Loaded(object sender, RoutedEventArgs args) 
    { 
     WebClient data = new WebClient(); 
     data.DownloadStringCompleted += new DownloadStringCompletedEventHandler(data_DownloadStringCompleted); 
     Uri dataSource = new Uri("localhost:88/expenseservice.svc/expenses"); 
     data.DownloadStringAsync(dataSource); 
    } 

    void data_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) 
    { 
     if (e.Error != null) 
     { 
      MessageBox.Show(e.Error.InnerException.Message); 
      return; 
     } 

     // ... 

    } 

Cependant, cela ne fonctionne pas. La boîte de message indique l'erreur:

The URI prefix is not recognized.

Voici la pleine exception:

e.Error.InnerException = {System.NotSupportedException: The URI prefix is not recognized. 
    at System.Net.WebRequest.Create(Uri requestUri) 
    at System.Net.WebClient.GetWebRequest(Uri address) 
    at System.Net.WebClient.DownloadStringAsync(Uri address, Object userToken)} 

Est-il plaint localhost? Suis-je censé faire quelque chose différemment? Peut-être est ce que "Add Service Reference" est pour?

Répondre

1

Je pense que le préfixe n'est pas reconnu car il est manquant. Le préfixe doit être la première partie qui décrit le type de service que votre URI pointe vers. Par exemple http:// de svn:// et ainsi de suite ..

Ajoutez juste la bonne et il devrait fonctionner .. (je ne l'ai jamais utilisé Silverlight ni quoi que ce soit Microsoftish Je suis tellement juste deviner)

+0

Qu'est-ce que je veux préfixe pour localhost? http: // localhost? –

+0

Je pense que vous n'obtenez pas le point. Quel type de service est en ligne sur le port 88? un serveur web? – Jack

+0

Cela peut aider: http://stackoverflow.com/questions/2246735/silverlight-webrequest-fails-with-the-ur-prefix-is-not-recognized – Jack

Questions connexes