我正在尝试将我的wcf服务配置为使用wsDualHttpBinding而不是https。我的当前配置如下:
服务
<service behaviorConfiguration="SecureBackendWebServiceBehavior"
name="WebService.InternalService.BackendWebService">
<endpoint address=""
binding="wsDualHttpBinding"
bindingConfiguration="SecureBackendWebServiceWsDualHttpBinding"
name="BackendWebServiceEndpoint"
contract="WebService.InternalService.IBackendWebService"/>
</service>结合
<binding name="SecureBackendWebServiceWsDualHttpBinding"
receiveTimeout="00:05:00"
bypassProxyOnLocal="false"
transactionFlow="true"
maxBufferPoolSize="2147483647"
maxReceivedMessageSize="2147483647"
messageEncoding="Mtom">
<readerQuotas maxDepth="2147483647"
maxStringContentLength="2147483647"
maxArrayLength="2147483647"
maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
<security mode="Message">
<message clientCredentialType="Certificate" />
</security>
</binding>行为
<behavior name="SecureBackendWebServiceBehavior">
<serviceMetadata httpsGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>当我在浏览器中调用服务时,它说:在端点绑定WSDualHttpBinding中找不到模式"http“的基址。注册的baseaddressschema是https。
通过搜索这个问题,我只得到了普通wsHttpBindings的样本,而没有双绑定的样本。我已经输入了一个HttpsGetUrl,但最后还是出现了同样的错误。我有没有监督过一些价值,或者他为什么要通过http获取信息?
顺便说一句。将绑定更改为NetTcp是而不是的一个选项!
希望你们中的任何人能在这里帮助我。thx
发布于 2013-01-16 07:03:21
我自己找到了解决办法。我使用提高Web服务安全性的模式和实践: WCF的场景和实现指南来更好地理解WCF中的安全性。这本书还包括某些场景的HowTos。我只需要做些额外的事。
因为我的Web是在三个较小的服务中分离的,其中一个服务使用了我需要的WsDualHttpBinding来告诉iis,这个服务不需要ssl证书来传输。
现在我的服务谈判,但我需要检查它是否真的使用我想要的安全。
更新:找到了这个文章,它也包含一个逐步的教程。
发布于 2013-01-10 16:36:22
wsDualHttpBinding不支持传输安全。
MSDN:
WSDualHttpBinding为Web协议提供了与WSHttpBinding相同的支持,但适用于双工协议。WSDualHttpBinding只支持SOAP安全,并且需要可靠的消息传递。
因此,您可以只在这里依赖消息安全。
https://stackoverflow.com/questions/14258146
复制相似问题