Я использую приложение silverlight 4 в двух сценариях.
Сценарий 1: Silverlight и RPC на одной машине
Будучи запущенным на веб-странице в файловой системе, Silverlight XAP также находится в файловой системе:
C:\Silverlight\FSSilverlightApp\bin\Debug\SilverlightApplication2TestPage.html
Подключение к веб-сайту на локальном хосте, доступ к которому:
https://localhost/rpc/someMethod
Это два отдельных URI, поэтому браузер обнаруживает и сразу же запрашивает (отслеживание через fiddler):
https://lcoalhost/clientaccesspolicy.xml
успешно возвращает:
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="http://*"/>
<domain uri="https://*" />
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
Затем приложение может отправлять запросы rpc (наблюдается через fiddler)
Все хорошо. Если я изменил имя удаленного хоста на локальное, а не на localhost, это тоже хорошо работает.
Сценарий 2: Silverlight на локальном компьютере и удаленный RPC
- В этом сценарии я использую другой рабочий стол для доступа к тому же серверу RPC, который использовался в сценарии 1.
- Silverlight запускается, и запрос на: clientaccesspolicy.xml не выполняется
- Fiddler показывает тонну устанавливаемых туннелей https, но нет связи между моей машиной и удаленным сервером.
Возвращается следующее исключение безопасности:
System.Security.SecurityException ---> System.Security.SecurityException: Security error.
at System.Net.Browser.ClientHttpWebRequest.InternalEndGetResponse(IAsyncResultasyncResult)
at System.Net.Browser.ClientHttpWebRequest.<>c__DisplayClass5.<EndGetResponse>b__4(ObjectsendState)
at System.Net.Browser.AsyncHelper.<>c__DisplayClass2.<BeginOnUI>b__0(Object sendState)
--- End of inner exception stack trace ---
at Microsoft.FSharp.Control.WebExtensions.AsyncGetResponse@1781-1.Invoke(Exception _arg1023)
at Microsoft.FSharp.Control.AsyncBuilderImpl.callA@736.Invoke(AsyncParams`1 args)
Я предполагаю, что это проблема конфигурации IE. Я попытался настроить компьютер в сценарии 1 как надежный сайт внутри Internet Explorer, и это, похоже, не сработало ... Это должно быть проблема с самозаверяющим или несоответствующим сертификатом. Есть мысли?
Использование: IE 8 и Windows 7
Мысли