我有一个带有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
我不知道是否有什么问题,或者我需要做更多的事......等等 在此先感谢所有需要帮助的人。
答案 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"