2010-08-10 5 views
2

Я получаю следующую ошибку при подключении моего приложения Silverlight к моей службе WCF. Я размещаю этот wcf как услугу самого хоста.ошибка междоменной политики в Silverlight с WCF

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

Каковы возможные причины этой ошибки?

+0

Служба поддержки гостей? – Siege898

+0

На самом деле, сначала я принимал его как службу самообслуживания. Но так как я не могу найти место для размещения двух файлов xml (clientaccesspolicy.xml и crossdomain.xml), когда я размещаю его как самостоятельную службу, я размещал его на сервере IIS и помещал два xml в мой «C: \ Inetpub \ Wwwroot. Тогда это сработало отлично. THX для поддержки всем! –

+0

В локальной машине работает нормально. но когда я развернул WCF в IIS на сервере, тогда он не работает. его бросает ту же ошибку. Когда я пытаюсь открыть crossdomain.xml, он не открывается на сервере. В нем указано «Неопределенная ошибка обработки ошибок» http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd. ' – user270014

ответ

6

Если ваше приложение Silverlight не размещено в том же домене, что и служба, вам нужно будет поместить файл clientaccesspolicy.xml или crossdomain.xml на сервер, на котором размещена эта служба.

Смотрите эту ссылку для подробностей: http://msdn.microsoft.com/en-us/library/cc197955%28VS.95%29.aspx

+0

Я поместил эти файлы xml в мой' C: \ Inetpub \ wwwroot ', и он сработал. thx для поддержки: D –

+0

У меня была эта проблема, когда оба приложения Silverlight и служба WCF были размещены в Visual Studio с ASP.NET Development Server (т. е. не размещены в IIS). Чтобы исправить это, мне пришлось изменить виртуальный путь для веб-сайта хоста WCF в /. Причина в том, что Silverlight ищет clientaccesspolicy.xml в корне домена, на котором размещена эта служба. Чтобы изменить виртуальный путь, щелкните правой кнопкой мыши на веб-сайте и выберите «Свойства». –

+0

На локальной машине работает нормально. но когда я развернул WCF в IIS на сервере, тогда он не работает. его бросает ту же ошибку. Когда я пытаюсь открыть crossdomain.xml, он не открывается на сервере. В нем указано «Неопределенная ошибка обработки ошибок» http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd. ' – user270014

2

Щелкните правой кнопкой мыши на файле .svc и нажмите «Просмотреть» в браузере. Убедитесь, что он даже правильно размещен и работает правильно. Это даст вам хорошее начальное место.

0

Будьте осторожны, что вы создали веб-службы WCF правильно в Silverlight, при использовании Silverlight потреблять веб-службы. В отличие от клиента консольного режима, в Silverlight вы не можете просто создать новый элемент WCF в своем решении, но в разделе .Web вашего решения Silverlight щелкните правой кнопкой мыши, добавьте новый элемент, который называется службой WCF с поддержкой Silverlight ». Теперь вы можете перейти в папку приложения Silverlight, добавить ссылку на службу, и вы не получите эту ошибку во время выполнения. Это позволит избежать ошибки времени выполнения, на которую ссылается исходный плакат.

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