Исключение связи Silverlight + WCF - PullRequest
       4

Исключение связи Silverlight + WCF

0 голосов
/ 15 февраля 2011

У меня есть приложение silverlight, в котором есть WCF. когда вызывается wcf, происходит сбой с этим исключением:

An error occurred while trying to make a request to URI 'http://localhost:4693/MapService.svc'. This could be due to attempting to access a service in a cross-domain way without a proper cross-domain policy in place, or a policy that is unsuitable for SOAP services. You may need to contact the owner of the service to publish a cross-domain policy file and to ensure it allows SOAP-related HTTP headers to be sent. This error may also be caused by using internal types in the web service proxy without using the InternalsVisibleToAttribute attribute. Please see the inner exception for more details.

Silverlight и WCF работают на локальном компьютере.

Мой серебряный свет работает с:

...\SilverlightApplication1\SilverlightApplication1\Bin\Release\SilverlightApplication1TestPage.html

это тег служб WCF web.config:

<services>
        <service behaviorConfiguration="FileUpAndDownload.Web.MapServiceBehavior" name="FileUpAndDownload.Web.MapService">
            <endpoint address="" binding="basicHttpBinding" bindingConfiguration="MapBinding" contract="FileUpAndDownload.Web.IMapService">
                <identity>
                    <dns value="localhost"/>
                </identity>
            </endpoint>
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
        </service>
    </services>

и это ServiceReference.ClientConfig:

<configuration>
<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="BasicHttpBinding_IMapService" maxBufferSize="2147483647"
                maxReceivedMessageSize="2147483647">
                <security mode="None" />
            </binding>
        </basicHttpBinding>
    </bindings>
    <client>
        <endpoint address="http://localhost:4693/MapService.svc" binding="basicHttpBinding"
            bindingConfiguration="BasicHttpBinding_IMapService" contract="MapService.IMapService"
            name="BasicHttpBinding_IMapService" />
    </client>
</system.serviceModel>

Я поместил clientaccesspolicy.xml в bin \ release, но это не помогло.

ПОМОГИТЕ ПОЖАЛУЙСТА!

Ответы [ 3 ]

0 голосов
/ 15 февраля 2011

Файл политики доступа клиента должен находиться в вашей папке wwwroot

0 голосов
/ 17 февраля 2011

Существуют проблемы с локальным запуском Silverlight, а не с веб-сервера. Права доступа различны, и Silverlight не сможет получить доступ к ЛЮБОМ веб-сервису. Я столкнулся с этой проблемой некоторое время назад с SL2, я думаю, что это могло измениться.

Вы должны создать новый проект WebApplication в Visual Studio и разместить в нем Silverlight. Тогда у вашего SL-клиента не возникнет проблем с подключением к услуге.

0 голосов
/ 15 февраля 2011

Для выполнения кросс-доменного вызова требуется дополнительная настройка, см .: http://www.dotnetcurry.com/ShowArticle.aspx?ID=208&AspxAutoDetectCookieSupport=1

Вероятно, у вас файл clientaccesspolicy.xml не в том месте, проверьте журнал IIS на наличие ошибок по файлам.

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