Где разместить клиенту доступную политику?Silverlight + WCF на местном - PullRequest
1 голос
/ 14 февраля 2011

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

SilverlightApplication1\SilverlightApplication1\Bin\Release\SilverlightApplication1TestPage.html

, и это из web.config WCF:

<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>

, где я должен разместить файл clientaccesspolicy?

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

спасибо!

Ответы [ 2 ]

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

Я более чем уверен, что вам не нужен ClientAccessPolicy, если вы все время запускаете на локальной машине.Но если вы это сделаете - положите его в свою корневую папку.Вероятно, проблема заключается в несоответствии между вашими веб-конфигурациями и клиентскими конфигурациями или просто тем, что вам не нужно, в web.config, что может привести к сбою связи.Попытайтесь избавиться от stff-подобной привязки Mex, которая вам не нужна, и посмотрите, сможете ли вы заставить ее работать с минимальной конфигурацией.

Я видел еще один вопрос о том же самом, что и неделю назад, в котором был файл client.config.Я могу сказать, что не смог заставить работать собственное приложение, пока не исправил несоответствие имен контрактов в конфигурациях конечных точек.Попробуйте это:

<endpoint address="" binding="basicHttpBinding" bindingConfiguration="MapBinding" contract="FileUpAndDownload.Web.MapService">
                <identity>
                    <dns value="localhost"/>
                </identity>
            </endpoint>

Обратите внимание, что я ушел в ваш контракт, надеюсь, это поможет =)

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

Поместите clientaccesspolicy.xml в корень вашего приложения.Для Кассини это должно быть .. \ bin \ release \ clientaccesspolicy.xml, для IIS - в .. \ inetpub \ wwwroot \ yourapp \ clientaccesspolicy.xml.Подробнее о http://msdn.microsoft.com/en-us/library/cc197955%28v=vs.95%29.aspx

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