在SSL中部署WCF服务和Silverlight

时间:2011-02-18 12:29:16

标签: silverlight wcf ssl

我有一个带有SSL服务的silverlight应用程序。如果我在没有SSL的情况下部署服务,则一切正常,但是如果我在servicereference.clientconfig中激活SSL并将端点从http://MyService更改为https://MyService,并在web.config中进行更改: 从“basicHttpBinding”到“webHttpBinding”的端点 该服务不起作用并产生下一个错误:

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

我不知道是否有什么问题,或者我需要做更多的事......等等 在此先感谢所有需要帮助的人。

1 个答案:

答案 0 :(得分:0)

您无法将服务端点转换为webHttpBinding,因为Silverlight仅支持basicHttpBinding。要保护Silverlight的服务,您需要创建具有传输级安全性的basicHttpBinding。然后,创建一个指定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"