Исключение между доменами библиотеки классов wcf - PullRequest
0 голосов
/ 23 октября 2011

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

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

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

Ответы [ 2 ]

0 голосов
/ 05 января 2012

Просто поместите clientaccesspolicy.xml в корневой каталог, т.е.

c:\inetpub\wwwroot\clientaccesspolicy.xml 

тогда будет работать.

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

0 голосов
/ 24 октября 2011

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

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

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

    /* other contracts declarations */
}

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

Second : просто поместите clientaccesspolicy.xml в корневой каталог реализации вашей службы, как описано в thisсообщение в блоге .

...