WCF для приложения Silverlight - PullRequest
0 голосов
/ 24 мая 2009

Я создал приложение Silverlight 2, которое использует службу WCF. Служба находится в локальной папке (не IIS) и отлично работает с тестом Winforms. когда я пытаюсь позвонить в службу, она возвращается с ошибкой: «не покушаться на междоменный домен».

Я пытался добавить clientaccesspolicy.xml и crossdomain.xml в: папка проекта wcf iis wwwroot корень локального диска E: \

но ничто не влияет куда их положить?

Ответы [ 6 ]

1 голос
/ 26 мая 2009

Если вы переходите от контекста http: // ... к контексту file: // ..., на самом деле это не междоменная проблема. Это межконтекстная проблема, которая не разрешена в Silverlight 2 (это также происходит с http: // и https://) по соображениям безопасности. Я не уверен, что это будет в Silverlight 3.

1 голос
/ 25 мая 2009

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

  • Ваше приложение silverlight размещается на html-странице, которую вы загружаете двойным щелчком, давая файл: // URI в строке адреса браузера или вы публикуете его в локальном IIS.
  • Ваша служба WCF работает в каком-либо самодостаточном процессе, таком как приложение командной строки, служба Windows или приложение Winforms. Что бы оно ни размещалось, оно не будет указываться по тому же URL-адресу, что и ваше приложение silverlight.

Приложение silverlight и служба wcf размещаются по разным URL-адресам, приложение находится в файле: //example.html или http://localhost, если вы опубликовали его в IIS и службе wcf на http://localhost:1234. Это вызывает проблемы междоменного доступа, потому что номера портов разные, или вы загружаете приложение silverlight из файла: // URI, и вы самостоятельно размещаете службу WCF. Если вы самостоятельно размещаете службу WCF, вы не можете решить эту проблему, так как для них требуется файл clientaccesspolicy.xml или файл crossdomain.xml, разрешающий доступ к службам с вашего URL-адреса silverlight, однако нет способа предоставить XML из корня автономный сервер WCF.

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

Я думаю, что эта ссылка может помочь вам ...

Как пользоваться услугой WCF

0 голосов
/ 04 сентября 2009
0 голосов
/ 25 мая 2009

Мм ... проверьте с помощью fiddler, отправлен ли запрос clientaccesspolicy.xml.

С другой стороны, фиктивная клиентская политика доступа, чтобы проверить, работает ли соединение:

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

Но вы должны попытаться работать в том же домене (лучше, если вам нужна безопасность ваших звонков).

0 голосов
/ 24 мая 2009

Возможно, вы не перезапустили IIS после этого?

Изменить: Вот подробное руководство, убедитесь, что вы не каждый шаг, чтобы заставить его работать: Silverlight 2.0 и WCF .

...