Самостоятельно размещенный междоменный сервис WCF, вызываемый из silverlight, размещенного в sharepoint - PullRequest
1 голос
/ 17 августа 2010

, как уже указано в заголовке, я пытаюсь вызвать службу WCF (размещенную в службе Windows), размещенную на собственном хосте, из приложения silverlight 4.0, которое размещено на sharepoint 2010. Я использую basicHttpBinding и уже пробовал много вещей, предложил здесь:

http://www.dotnetfunda.com/articles/article416.aspx

или здесь

http://blogs.msdn.com/b/carlosfigueira/archive/2008/03/07/enabling-cross-domain-calls-for-silverlight-apps-on-self-hosted-web-services.aspx

но ни один из них не сработал, но я все еще получаю ошибку:

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

Внутреннее исключение:

при развертывании решения Office убедитесь, что вы полностью выполнили все требования безопасности.

Два файла clientaccesspolicy.xml и crossdomain.xml доступны в http://myserver/clientaccesspolicy.xml и http://myserver/crossdomain.xml

У кого-нибудь есть идеи, как это решить?

1 Ответ

1 голос
/ 28 января 2011

Все это помогло мне. Но самым главным для меня было включение Fiddler и отслеживание запросов / ответов от Sharepoint + Silverlight. Я получаю ошибку 502 по какой-то причине. Я заметил, что мой URL в моем коде был "http://localhost:",, однако запрос от silverlight был" http://[servername]:", вы могли бы подумать, что это должно работать, однако это не так.

Я вспомнил, что раньше сталкивался с проблемами, когда "localhost" вызывал у меня проблемы, поэтому я отредактировал файл Host из / windows / system32 / drivers / etc и просто добавил строку :: 127.0.0.1 [имя_сервера]

Я сделал iisreset, оставил запущенным fiddler и снял флажок с опции Enable IPv6 (Tools-> Fiddler Options), и все заработало. Можно получить доступ к Clientaccesspolicy.xml, а sharepoint + silverlight может вызвать мир wcf:) !!!

Однако была одна серьезная проблема: когда вы выключили Fiddler, он перестал работать ... Теперь я должен выяснить это ...

Надеюсь, это поможет тебе.

...