Развертывание службы WCF и silverlight в SSL - PullRequest
0 голосов
/ 18 февраля 2011

У меня есть приложение silverlight с сервисом SSL. Если я развертываю службу без SSL, все работает правильно, но если я активирую SSL и изменил конечную точку с http://MyService на https://MyService в servicereference.clientconfig, и изменим в web.config: конечная точка от "basicHttpBinding" до "webHttpBinding" Служба не работает и выдает следующую ошибку:

Unhandled error in silverlight Application [Arg_NullReferenceException] 
Arguments: debbuging resource string ar unavalible

Я не знаю, если что-то не так, или мне нужно сделать что-то еще ... и т. Д. Спасибо всем заранее, мне нужна помощь.

1 Ответ

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

Невозможно преобразовать конечную точку службы в webHttpBinding, поскольку Silverlight поддерживает только basicHttpBinding. Чтобы обезопасить свои сервисы для Silverlight, вам нужно создать базовый HttpBinding с безопасностью транспортного уровня. Затем создайте поведение службы, которое указывает, что httpsGetEnabled = "true". Я включил образец ниже:

Сервисная сторона Web.config

<bindings>
  <basicHttpBinding>
    <binding name="SecureBasicHttpBinding" closeTimeout="00:01:00"
        openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
        allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
        maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
        messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
        useDefaultWebProxy="true">
      <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
          maxBytesPerRead="4096" maxNameTableCharCount="16384" />
      <security mode="Transport">
        <transport clientCredentialType="None" proxyCredentialType="None"
            realm="" />
        <message clientCredentialType="UserName" algorithmSuite="Default" />
      </security>
    </binding>
  </basicHttpBinding>
</bindings>

<services>
  <service name="MyService" behaviorConfiguration="SecureServiceBehavior">
    <endpoint address="" binding="basicHttpBinding" contract="IMyService" bindingConfiguration="SecureBasicHttpBinding" />
  </service>
</services>

<behaviors>
  <serviceBehaviors>
    <behavior name="SecureServiceBehavior">
      <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true"/>
    </behavior>
  </serviceBehaviors>
</behaviors>

Клиентская сторона

В конфигурации клиента добавьте тот же SecureBasicHttpBinding из служб, а затем добавьте следующий атрибут конечной точки:

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