Проблема доступа к локальному URI из Silverlight - PullRequest
0 голосов
/ 09 октября 2010

(перепост из-за сбоя SO; извинения за повторное появление другого)

Я создаю приложение Silverlight, которое будет работать на Azure. У моего решения VS есть два проекта: веб-роль и Silverlight. У веб-роли есть служба, которая работает. (Я могу перейти к localhost:88/expenseservice.svc/expenses и получить нужные данные.)

Я пытаюсь получить доступ к этим данным из 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;
        }

        // ...

    }

Однако это не работает. В окне сообщения отображается ошибка:

Префикс URI не распознан.

Вот полное исключение:

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)}

Это жалуется на localhost? Я должен делать что-то по-другому? Возможно, для этого и используется «Добавить справочник услуг»?

1 Ответ

1 голос
/ 09 октября 2010

Я думаю, что префикс не распознан, потому что он отсутствует.Префикс должен быть первой частью, описывающей, на какую услугу указывает ваш URI.Например, http:// из svn:// и т. Д.

Просто добавьте нужное, и оно должно работать .. (Я никогда не использовал Silverlight и ничего Microsoftish, так что я просто догадываюсь)

...