有没有人尝试过在WCF web服务中使用带有SSL的自定义绑定?我已经看到了许多关于如何使用basicHttpBinding和wsHttpBinding来实现这一点的示例,但是对于customBinding来说,同样的方法总是失败。具体来说,我目前使用的配置(迄今为止最成功的配置)如下所示:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true">
</serviceHostingEnvironment>
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceBehavior">
<serviceMetadata httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<customBinding>
<binding name="binaryHttps">
<binaryMessageEncoding />
<httpsTransport />
</binding>
</customBinding>
</bindings>
<services>
<service behaviorConfiguration="MyServiceBehavior" name="MyService">
<host>
<baseAddresses>
<add baseAddress="https://(myserver)/"/>
</baseAddresses>
</host>
<endpoint address=""
binding="customBinding" bindingConfiguration="binaryHttps"
contract="MyService" />
<endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>这实际上允许我们从web访问服务,获取它的WSDL并在visual studio中添加一个服务引用,但是当我们实际尝试并在我们的silverlight-3应用程序中使用它时,它只是无限期地等待响应,并且永远不会超时。在我的机器(内存为6 6GB )上运行一段时间后,它实际上会给我带来内存不足的问题。奇怪的是,所有这些都在开发环境(严格使用VS应用程序主机)中完美地工作(并且仍然有效),直到我们尝试使用真正的SSL证书将其部署到实际的服务器上时,所有这些问题才出现。
我已经相当详尽地寻找了这个问题的解决方案,但到目前为止还没有找到任何东西,并且尝试了几乎所有的方法--有没有人以前遇到过这个问题并解决了它?
发布于 2009-07-15 20:43:47
所以问题根本不是出在我们的web.config上,而是IIS7和通配符SSL证书的问题。
也就是说,IIS7不允许您在将IP绑定到SSL连接和证书时指定主机名。我猜这是因为它需要一个非通配符SSL证书,以便从中提取显式主机名。我们最终要做的是进入{WindowsDir}{System32}{Inetsrv}{ applicationHost.config }中的配置文件,找到与我们的web服务绑定的IP地址的条目,并将其显式更改为(Ip):(主机名)。然后,它甚至可以在IIS配置GUI中正确显示。
这样做之后,我们将完全关闭所有服务器上的所有通道,但SSL通道除外,一切都运行得很好。
感谢上帝,一切都结束了!
发布于 2009-07-15 02:25:42
AFAIK,使用SSL有性能问题。我们使用WCF behiovr进行身份验证。我们使用的方式是Silverlight => ASP.NET => WCF。我们在Silverlight和WCF中配置了Endpoint behivor。每当我们调用服务时,我们都会传递用于身份验证的令牌。
您是说您可以在Silverlight的ClientConfig中使用自定义绑定吗?
https://stackoverflow.com/questions/1129020
复制相似问题