Впервые использую Silverlight!После онлайн-урока.Я создаю приложение, которое позволяет пользователю искать истории с веб-сайта Digg с помощью веб-клиента и отображать их в сетке данных в элементе управления Silverlight.
Вот код:
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);
}
}
Всякий раз, когда я ставлю точку останова на обработчик событий diggService_DownloadStringCompleted
и нажимаю кнопку поиска e.Error
всегда равняется исключению System.Security.SecurityException без сообщения и внутреннему исключению того же типа с сообщением «Ошибка безопасности.».Трассировка стека:
в System.Net.Browser.AsyncHelper.BeginOnUI (SendOrPostCallback beginMethod, состояние объекта)
в System.Net.Browser.BrowserHttpWebRequest.EndGetResponse * 101syncResult*
в System.Net.WebClient.GetWebResponse (запрос WebRequest, результат IAsyncResult)
в System.Net.WebClient.DownloadBitsResponseCallback (результат IAsyncResult)
После некоторого интенсивного поиска в Googleвидел, что люди упоминают файл crossdomain.xml.Не совсем уверен, что это такое, но я добавил его в корневой каталог веб-сервера, на котором работает элемент управления Silverlight, и добавил следующий текст.не имеет никакого значения:
<?xml version="1.0" ?>
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
Что происходит?