Silverlight не может общаться с веб-сервисом HTTPS? - PullRequest
3 голосов
/ 16 августа 2010

У меня есть приложение Silverlight, которое взаимодействует с веб-службой HTTPS.

На большинстве машин все работает нормально, однако на некоторых машинах происходит сбой.

На машинах, на которых происходит сбой, я получаю исключение SecurityException при отправке запроса WebClient к веб-службе HTTPS. Само по себе SecurityException не дает мне никаких сведений о том, почему оно действительно не работает:

WebClient client = ...;
client.DownloadStringCompleted += OnCompleted;
client.DownloadStringAsyc("https://somewebservice/foo");

...

void OnCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    Console.WriteLine(e.Error); // Prints SecurityException. Message = "Security error"
}

Каковы возможные причины, по которым приложение Silverlight не может вызвать веб-службу HTTPS? Как я могу отладить это?

edit Все еще нет ответов - могу ли я дать дополнительную информацию, чтобы помочь решить эту проблему?

1 Ответ

3 голосов
/ 17 августа 2010

Мы поняли это.Проблема сводилась к межзональным вызовам:

Наше приложение Silverlight было размещено на foo.bar.com, который находится в обычной интернет-зоне IE (с низким уровнем доверия).

Наш веб-сервис былразмещен на сайте foo.ourcompany.com, который находится в интранет-зоне IE (с высоким уровнем доверия).

Приложения Silverlight не могут выполнять веб-запросы от зон с низким уровнем безопасности до зон с более высоким уровнем безопасности.См. Статью MSDN о Ограничениях доступа к URL-адресу Silverlight для получения дополнительной информации.В нашем случае переход от Интернета-> Интранет переходил от низкого доверия к высокому доверию, и поэтому SL-вызов не удался с SecurityException.

Мнение: Microsoft должна предоставить информацию о том, почему возникла исключительная ситуация SecurityException во время вызовов веб-запроса.Это сэкономило бы нам много времени и денег.

...