Загрузка данных с сайта в Silverlight

Я пытаюсь загрузить данные в свое приложение Silverlight. Однако при запуске я получаю исключение TargetInvocationException, как только нажимаю e.Result:

public MainPage() {
  WebClient wc = new WebClient();
  wc.OpenReadCompleted += new OpenReadCompletedEventHandler(wc_OpenReadCompleted);
  wc.OpenReadAsync(new Uri("http://www.google.com"));
}

void wc_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) {
  Stream st = e.Result;
  StreamReader sr = new StreamReader(st);
  String result = sr.ReadToEnd();
}

Почему это не удается и что мне делать, чтобы это сработало?

PS, боюсь, я не могу создать локальный прокси, потому что приложение будет развернуто как часть приложения на сервере Apache Tomcat, а не в IIS.

Ваше здоровье

Ник


person niklassaers    schedule 02.12.2009    source источник


Ответы (1)


Silverlight не может выполнять междоменные запросы без файла междоменной политики в целевом домене. Если вы не можете настроить прокси, вы не сможете получать данные из любого домена, кроме того, на котором размещено ваше приложение.

person Dave Swersky    schedule 02.12.2009
comment
У меня есть полный контроль над доменом и сервером, на котором размещен веб-сервис, так что это не проблема. Любые указатели на то, как я могу разместить междоменную политику на сервере Tomcat? Что я должен особенно знать о приложении Silverlight и междоменной политике на сервере Tomcat? - person niklassaers; 03.12.2009
comment
Файл политики - crossdomain.xml. Я думаю, что он должен быть доступен в корне, ничего особенного в этом нет. IIS, Tomcat, Apache, хостинговая платформа значения не имеют. - person Dave Swersky; 03.12.2009