Config Custombinding, такой как tcpbinding с аутентификацией Windows, не работает в silverlight4 - PullRequest
0 голосов
/ 04 октября 2011

У меня есть следующий файл конфигурации сервера с привязкой tcp и аутентификацией Windows:

<customBinding>
        <binding name="NewBindingTcpSecure">
          <security authenticationMode="SecureConversation">
            <secureConversationBootstrap authenticationMode="SspiNegotiated"   />
          </security>

          <binaryMessageEncoding maxSessionSize="1000000">
            <readerQuotas maxDepth="64" maxStringContentLength="131072" maxArrayLength="16384"
              maxBytesPerRead="16384" maxNameTableCharCount="16384" />
          </binaryMessageEncoding>
          <!--<windowsStreamSecurity protectionLevel="None" />-->

          <tcpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647"
            portSharingEnabled="true" />
        </binding>

Это работает, когда я использую приложение Windows. Но это не работает, когда я использую silverlight 4.

Моя клиентская привязка в silverlight выглядит следующим образом:

 <bindings>
            <customBinding>
                <binding name="DefaultTcp">
                    <binaryMessageEncoding />
                    <tcpTransport />
                </binding>
            </customBinding>
        </bindings>
        <client>
            <endpoint address="net.tcp://localhost:4502/HelloWcf/Service1.svc"
                binding="customBinding" bindingConfiguration="DefaultTcp"
                contract="ServiceReference1.IService1" name="DefaultTcp" />
        </client>

Я получаю ошибку:

The message could not be processed. This is most likely because the action 'http://tempuri.org/IService1/GetData' is incorrect or because the message contains an invalid or expired security context token or because there is a mismatch between bindings. The security context token would be invalid if the service aborted the channel due to inactivity. To prevent the service from aborting idle sessions prematurely increase the Receive timeout on the service endpoint's binding.

Пожалуйста, помогите ...

Ответы [ 2 ]

0 голосов
/ 09 октября 2012

Я знаю, что этот поток немного староват, но на всякий случай, если кто-то проверит его, стоит получить ответ - Silverlight не поддерживает привязки TCP с безопасностью, как описано здесь: http://msdn.microsoft.com/en-us/library/cc645026(v=vs.95).aspx

0 голосов
/ 04 октября 2011

Вы создали междоменную политику доступа, чтобы разрешить tcp связь?

<?xml version="1.0" encoding ="utf-8"?> 
 <access-policy>   
  <cross-domain-access>     
   <policy>       
   <allow-from>         
   <domain uri="*"/>       
   </allow-from>       
   <grant-to>         
   <socket-resource port="4502-4506" protocol="tcp" />       
   </grant-to>     
   </policy>   
</cross-domain-access> 
</access-policy>

Проверьте эту статью: http://www.silverlightshow.net/items/WCF-NET.TCP-Protocol-in-Silverlight-4.aspx

...