Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Silverlight. DownloadStringAsync, Загрузка ресурса в виде строки 
:(
    Опции темы
ad12
Дата 19.4.2012, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 19.7.2010

Репутация: нет
Всего: нет



Добрый день.
Silverlight 4.
Исполняю приложение в режиме отладки (на временном локальном хосте, созданном Visual Studio)

Пытаюсь загрузить ресурс в виде строки:
 
Код

WebClient client = new WebClient();
client.DownloadStringCompleted += client_DownloadStringCompleted;
client.DownloadStringAsync(new Uri("http://www.yandex.ru"));


По завершении загрузки хочу отобразить его в текстбоксе:

Код

void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
        {
            try
            {
                myTextBox.Text = e.Result; //здесь вылезает исключение
                                                         //InnerException.--->System.Security.SecurityException. Ошибка безопасности  
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());                
            }
        }


Как с этим побороться?
PM MAIL   Вверх
erm0l0v
Дата 20.4.2012, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 11.1.2011

Репутация: нет
Всего: 1



используйте Dispatcher для доступа к элементам пользовательского интерфейса из потока.
PM MAIL   Вверх
ad12
Дата 20.4.2012, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 19.7.2010

Репутация: нет
Всего: нет



Спасибо.
А можно чуть подробнее?
Если бы чуток кода...
PM MAIL   Вверх
dextermd
Дата 21.4.2012, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 21.6.2008

Репутация: нет
Всего: нет



На WPF это делается следующим образом:
Код

void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    try
    {
        Action action = () => myTextBox.Text = e.Result;
        Dispatcher.Invoke(action);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.ToString());
    }
}

Наверное на Silverlight будет работать аналогично.
PM MAIL   Вверх
ad12
Дата 23.4.2012, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 19.7.2010

Репутация: нет
Всего: нет



Спасибо.
Но и это не работает.
e.Result вызывает аналогичное исключение :-(

Получается, из браузерного Silverlight-приложения нельзя обращаться к внешнему ресурсу...
PM MAIL   Вверх
Любитель
Дата 13.5.2012, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 1
Всего: 92



Для WebClient в сильверлайте применяются полтики кросдоменности. Если нету clientaccesspolicy.cxml (ну там ещё фолбек на crossdomain.xml), разрешающего доступ - будет security exception. Если нужно запросить сервис не зависящий от тебя - делай это на своём сервер сайде, а из-под SL вызывай свой сервис.


--------------------
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0732 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.