Чтобы помочь другим, у кого есть такая же проблема и которые не хотят использовать IFrames, просмотрите эту ссылку , так как это решило мою проблему. Несмотря на то, что автор ссылается на Silverlight 2, он решил мою проблему в Silverlight 3. Если ссылка не работает, мне нужно сделать 2 вещи:
- В приложении Silverlight отредактируйте файл AppManifest.xml, добавив следующее:
<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
ExternalCallersFromCrossDomain="ScriptableOnly">
- Если вы используете HtmlPage в своем приложении Silverlight (например, при чтении строки QueryString, переданной на страницу хостинга), вы также должны добавить:
<param name="enableHtmlAccess" value="true" />
к объекту silverlight на странице хостинга.
Обращаем ваше внимание на то, что вышесказанное имеет последствия для безопасности, и я не могу не думать о том, что именно поэтому Microsoft старается изо всех сил распространять эту информацию. Однако в моем случае у меня нет доступных для сценария элементов silverlight, и поскольку я написал приложение silverlight, у меня нет проблем со страницей хостинга, позволяющей приложению silverlight доступ к ней.
Исследуя это, я заметил, что эта проблема и соответствующие решения путаются с отдельной проблемой - проблемой доступа xap silverlight к сервису wcf через границы домена. Эта проблема требует файла clientaccesspolicy.xml, расположенного в корне веб-сайта, на котором размещена служба wcf.
Таким образом, 1-й сайт может получить доступ к файлу xap на 2-м сайте, который обращается к службе данных на 3-м сайте, для максимальной гибкости и повторного использования.