0

我正在尝试将我的 wcf 服务配置为通过 https 使用 wsDualHttpBinding。我当前的配置如下所示:

服务

<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不是一种选择!

希望你们中的任何人都可以在这里帮助我。谢谢

4

2 回答 2

1

wsDualHttpBinding 不支持传输安全性。

MSDN:

WSDualHttpBinding 为 Web Service 协议提供与 WSHttpBinding 相同的支持,但用于双工协定。WSDualHttpBinding 仅支持 SOAP 安全性并需要可靠的消息传递。

因此,您只能在此处依赖消息安全性。

于 2013-01-10T16:36:22.877 回答
1

我自己找到了解决方案。我使用了改进 Web 服务安全性的模式和实践:WCF 的场景和实施指南来更好地理解 WCF 中的安全性。本书还包括某些场景的 HowTos。唯一我必须做的事情。

因为我的 Web 服务分为三个较小的服务,其中之一是使用 WsDualHttpBinding 我需要告诉 iis 这个不需要 ssl 证书进行传输。

For now on my service talks, but I need to check if it really uses the security I want to have.

UPDATE: Found this article that also contains a step by step tutorial.

于 2013-01-16T07:03:21.770 回答