情况:
问题:
1.从这些限制中可以使用哪种最佳协议?
你会默认使用会话吗?
3.首先尝试此绑定(它有效,但没有会话支持)
<!--define a SOAP binding-->
<wsHttpBinding>
<binding name="DefaultSOAPBasedHTTPSBinding" maxReceivedMessageSize="400000">
<readerQuotas maxArrayLength="102400" />
<security mode="Transport">
<transport clientCredentialType="None" />
</security>
</binding>
</wsHttpBinding>
启用会话:
<wsHttpBinding>
<binding name="DefaultSOAPBasedHTTPSBinding" maxReceivedMessageSize="400000">
<readerQuotas maxArrayLength="102400" />
<reliableSession enabled="true" />
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Basic" />
<message clientCredentialType="Certificate"/>
</security>
</binding>
</wsHttpBinding>
我的感觉是这种运输&amp;消息securtiy太多了 - 我的意思是我们真的需要这个以便允许与wsHttpBinding进行会话吗?
答案 0 :(得分:0)
我建议以下绑定配置以及每次调用:
<wsHttpBinding>
<binding name="DefaultSOAPBasedHTTPSBinding" maxReceivedMessageSize="400000">
<readerQuotas maxArrayLength="102400" />
<security>
<message clientCredentialType="Username"/>
</security>
</binding>
</wsHttpBinding>
希望它有所帮助!
答案 1 :(得分:0)
所以,最后我使用Session因为它没有太大的性能影响。这也是一个限制,我们应该知道如何通过网络服务与我们交谈。所以我们需要身份验证。
Beaud的答案帮助很大 - 但缺少的部分是自定义名称和密码validaror: http://msdn.microsoft.com/en-us/library/aa702565.aspx
使用此web.config:
<wsHttpBinding>
<binding name="DefaultSOAPBasedHTTPSBinding" maxReceivedMessageSize="400000">
<readerQuotas maxArrayLength="102400"/>
<reliableSession enabled="true"/>
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Basic"/>
<message clientCredentialType="UserName"/>
</security>
</binding>
</wsHttpBinding>
也许它对某人有帮助......
在找到这些 magic WCF配置问题时,WCF跟踪也是一个很大的帮助:
<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>