首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在IIS7中配置WCF服务: HTTPS、会话、wsHttpBinding (SOAP)

如何在IIS7中配置WCF服务: HTTPS、会话、wsHttpBinding (SOAP)
EN

Stack Overflow用户
提问于 2010-06-17 11:44:19
回答 2查看 4.7K关注 0票数 0

的情况:

  1. 我们有Windows2008Web服务器与IIS7,(.NET4)
  2. ,我们只能通过默认的HTTPS (443)端口
  3. 与web服务器通信,服务器上有一个ASP.NET网站,该服务是网站代码的一部分。
  4. 一些客户端(具有WCF支持的桌面应用程序)希望与我们新的WCF webservice
  5. 消息大小进行通信,双方之间的消息大小可以是100-400 kb
  6. ,我们希望将WCF服务部分保留在IIS中。客户端的
  7. ,我们请求一个自定义用户名和密码来连接到我们的服务
  8. ,在
  9. 后面有更长的会话,有更多的DB进程,还有快速的短会话--比如来自客户机
  10. 的ping,客户端密码存储在我们的we服务器上(来自DB) --客户端应该根据这些密码进行身份验证。

问题

根据这些约束条件,使用什么是最好的协议? default?

  • Tried
  1. 是否会首先使用这个绑定(它有效,但是没有会话支持)

代码语言:javascript
复制
  <!--define a SOAP binding-->
  <wsHttpBinding>
    <binding name="DefaultSOAPBasedHTTPSBinding" maxReceivedMessageSize="400000">
      <readerQuotas maxArrayLength="102400" />
      <security mode="Transport">
        <transport clientCredentialType="None" />
      </security>
    </binding>
  </wsHttpBinding>

为使会议能够:

代码语言:javascript
复制
  <wsHttpBinding>
    <binding name="DefaultSOAPBasedHTTPSBinding" maxReceivedMessageSize="400000">          
      <readerQuotas maxArrayLength="102400" />
      <reliableSession enabled="true" />
      <security mode="TransportWithMessageCredential">
        <transport clientCredentialType="Basic" />
        <message clientCredentialType="Certificate"/>
      </security>
    </binding>
  </wsHttpBinding>

我的感觉是,这种传输和消息安全太多了--我的意思是,为了允许与wsHttpBinding进行会话,我们真的需要这样做吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-17 13:12:05

  1. wsHttpBinding,使用http和安全性,IIS将管理服务的生命周期。此外,您可能需要一个专用的应用程序池。
  2. 是否使用会话是设计问题。如果在调用之间存在要维护的状态,则使用会话,否则每次调用都要使用。ping操作不需要会话。

我建议使用以下绑定配置以及每次调用:

代码语言:javascript
复制
  <wsHttpBinding>
    <binding name="DefaultSOAPBasedHTTPSBinding" maxReceivedMessageSize="400000">          
      <readerQuotas maxArrayLength="102400" />
      <security>
        <message clientCredentialType="Username"/>
      </security>
    </binding>
  </wsHttpBinding>

希望能帮上忙!

票数 0
EN

Stack Overflow用户

发布于 2010-06-19 16:17:08

所以,最后我使用会话,因为它没有太大的性能影响。这也是一个限制,我们应该知道如何通过网络服务与我们交谈。所以我们需要认证。

博德的回答有很大帮助--不过,缺少的是自定义名称和密码--验证器:http://msdn.microsoft.com/en-us/library/aa702565.aspx

使用此web.config:

代码语言:javascript
复制
        <wsHttpBinding>
            <binding name="DefaultSOAPBasedHTTPSBinding" maxReceivedMessageSize="400000">
                <readerQuotas maxArrayLength="102400"/>
                <reliableSession enabled="true"/>
                <security mode="TransportWithMessageCredential">
                    <transport clientCredentialType="Basic"/>
                    <message clientCredentialType="UserName"/>
                </security>
            </binding>
        </wsHttpBinding>

也许它能帮到某人..。

当发现这些神奇的WCF配置问题时,WCF跟踪也是一个很大的帮助:

代码语言:javascript
复制
<system.diagnostics>
    <trace autoflush="true"/>
    <sources>
        <source name="System.ServiceModel" switchValue="Information, ActivityTracing" propagateActivity="true">
            <listeners>
                <add name="sdt" type="System.Diagnostics.XmlWriterTraceListener" initializeData="SdrConfigExample.e2e"/>
            </listeners>
        </source>
    </sources>
</system.diagnostics>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3061316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档