Политика междоменного доступа не работает для Silverlight, размещенного в IIS - PullRequest
0 голосов
/ 04 июля 2011

В настоящее время мое приложение silverlight размещено в IIS и настроено на использование только HTTPS.

веб-проект silverlight является корнем веб-сайта IIS, а проект веб-сервисов представляет собой отдельное веб-приложение, сопоставленное с /Services.

.

Я могу перейти на свой сайт, используя "" и ""

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

Произошла ошибка при попытке сделать запрос к URI «https://localhost/Services/Services/Authentication.svc'. Это может быть связано с попытками получить доступ к услуге в междоменном режиме без надлежащей междоменной политики на месте, или политика, которая не подходит для SOAP-сервисов. Ты можешь нужно связаться с владельцем сервис для публикации междомена файл политики и обеспечить его позволяет Связанные с SOAP HTTP-заголовки для отправки. Эта ошибка также может быть вызвана использованием внутренние типы в веб-сервисе прокси без использования Атрибут InternalsVisibleToAttribute

У меня есть файлы Crossdomain.xml и clientaccesspolicy.xml в корне моего приложения веб-служб, а также в корне веб-проекта Silverlight.

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-access-from domain="https://*" secure="true" />
  <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

clientaccesspolicy.xml

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

Я не совсем уверен, в чем проблема.

Спасибо

Редактировать

Ниже показано, что показывает скрипач после вызова сервиса. .

Fiddler Output С fiddler, настроенным для декодирования https, IE не показывал никаких дополнительных записей, но с chrome я получаю следующий вывод

Fiddler Output2

Ответы [ 3 ]

1 голос
/ 04 июля 2011

Как говорится в сообщении об ошибке: "Это может быть из-за попытки доступа к услуге междоменным способом ..." Попробуйте использовать какой-либо инструмент, например Fiddler inклиент, чтобы увидеть, каков фактический ответ от сервера.Это даст вам больше информации о проблеме.

0 голосов
/ 08 мая 2012

Я решил эту проблему, щелкнув правой кнопкой мыши на части frontEnd.Web моего решения, перейдя в свойства, а затем на вкладку Web, вместо того, чтобы использовать параметр автоматического назначения порта, я изменил его на использование локального сервера IIS.Это избавило от ошибки.

0 голосов
/ 06 июля 2011

Как показывает fiddler, ваш ссылочный файл для службы имеет указатели на localhost: 444 это обычно происходит, когда у вас есть оба проекта в одном решении и добавляется ссылка на службу.

...