2011-10-23 3 views
0

прежде чем я начну, я должен сказать, что я использую silverlight3 и .Net 3.5. У меня есть библиотека классов wcf с некоторыми методами в ней, и я добавил ее в библиотеку классов silverlight (чтобы добавить библиотеку классов wcf, сначала я добавил весь проект библиотеки классов wcf в решение библиотеки классов silverlight, а затем i добавьте ссылку на службу библиотеки классов wcf в мою библиотеку классов silverlight), представьте, что вывод библиотеки классов silverlight является пользовательским элементом управления, поэтому я добавил библиотеку классов в приложение Silverlight (мой основной проект) как сервисное подтверждение использования usercontrol Но когда приложение хочет создать экземпляр UserControl является сгенерирует исключениеwcf класс библиотека перекрестная ошибка домена

Произошла ошибка при попытке сделать запрос к URI «HTTP: // локальный: 8732/Design_Time_Addresses/GalleryShopWCFService/GalleryShopService /». Это может быть связано с попыткой доступа к службе в междоменном режиме без надлежащей политики междоменного размещения или политики, непригодной для SOAP-сервисов. Возможно, вам потребуется связаться с владельцем службы, чтобы опубликовать файл политики междоменной политики и обеспечить его отправку HTTP-заголовков, связанных с SOAP. Эта ошибка также может быть вызвана использованием внутренних типов в прокси-сервере веб-службы без использования атрибута InternalsVisibleToAttribute. Для получения дополнительной информации см. Внутреннее исключение.

Я знаю, что у меня должен быть файл cleintaccesspolicy.xml, но я не знаю, где.

ответ

0

Вы можете решить эту проблему двумя способами.

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

public interface IGalleryShopService 
{ 
    [OperationContract, WebGet(UriTemplate = "/clientaccesspolicy.xml")] 
    Stream GetSilverlightClientAccessPolicy(); 

    /* other contracts declarations */ 
} 

В фактической реализации, вам необходимо вернуть фактический XML в виде потока. Примеры XMLs для Silverlight можно найти по адресу MSDN.

Второй: просто положить clientaccesspolicy.xml в корневой каталог вашей реализации услуг, как описано в this blog post.

0

Проще говоря clientaccesspolicy.xml в корневой директории т.е.

c:\inetpub\wwwroot\clientaccesspolicy.xml 

, то он будет работать.

Потому что ваш сайт ищет clientaccesspolicy.xml в http://localhost/clientaccesspolicy.xml, иначе вы можете изменить путь к вашему XML-файлу. Поместите его в корень с помощью виртуального каталога.

Смежные вопросы