Службы WCF с поддержкой Silverlight |Размещено в проекте типа веб-сайта |.Net 4.0 |Проблема между доменами - PullRequest
0 голосов
/ 20 января 2012

Мне нужна небольшая помощь в отношении услуг WCF.Ситуация примерно такая: я сделал проект веб-сайта в .net 4.0, а затем добавил службу WCF с поддержкой Silverlight с именем AdminService.svc.Я написал несколько методов в этом сервисе, конечно же, сделал их [OperationContracts].Затем я создал другой проект Silverlight 5.0 в той же рабочей области и попытался использовать службу (AdminService.svc), добавил ее ссылку в этом проекте (мы должны помнить, что AdminService работает в другом проекте типа веб-сайта в той же рабочей области),Но теперь каждый раз, когда я запускаю приложение и пытаюсь вызвать метод, который просто возвращает некоторые данные, я получаю эту ошибку!

Ошибка при попытке сделать запрос к URI

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

Очевидный ответ на эту проблему - добавить crossdomain.xml и clientaccesspolicy.xml, верно?У меня есть они оба в моем проекте типа веб-сайта wcf на корневом уровне со следующим содержимым:

clientaccesspolicy.xml

<?xml version="1.0" encoding="utf-8" ?>
<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="*">
        <domain uri="*"/>
      </allow-from>
      <grant-to>
        <resource include-subpaths="true" path="/"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

, а другой

crossdomain.xml

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

Пожалуйста, помогите мне с этим, это становится проблематичным.

1 Ответ

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

Я заметил, что это сообщение может вызывать одна ошибка в файле clientaccesspolicy.xml.

При копировании содержимого файла веб-страницы (блога, MSDN) в Visual Studio иногда вы получаете неверные символы кавычек или скрытые / невидимые символы Юникода.

Копирование содержимого XML-файла в блокнот и вставка его обратно в Visual Studio решало эту проблему для меня много раз.

Также можно использовать расширение файла политики клиентского доступа Silverlight в Visual Studio (Инструменты | Диспетчер расширений)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...