您可以將多個端點添加到一個服務,而每個端點負責其配置(包括安全性)。
設置主機:從App.config中獲得
ServiceHost host=new ServiceHost(typeof(CalcService));
host.AddServiceEndpoint(typeof (ICalc), new NetNamedPipeBinding("internalBinding"),
"net.pipe://127.0.0.1:5000/CalcService");
host.AddServiceEndpoint(typeof(ICalc), new BasicHttpBinding("secureBinding"),
"http://127.0.0.1:5001/CalcService");
這裏的配置,它可以像這樣
<bindings>
<basicHttpBinding>
<binding name="secureBinding" openTimeout="00:01:00" closeTimeout="00:01:00" sendTimeout="00:30:00" receiveTimeout="00:30:00"
maxBufferSize="2147483647"
maxBufferPoolSize="2147483647"
maxReceivedMessageSize="2147483647"
transferMode="Streamed">
<readerQuotas maxDepth="2147483647"
maxStringContentLength="2147483647"
maxArrayLength="2147483647"
maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
<security mode="Transport"/>
</binding>
</basicHttpBinding>
<netNamedPipeBinding>
<binding name="internalBinding" openTimeout="00:01:00" closeTimeout="00:01:00" sendTimeout="00:30:00" receiveTimeout="00:30:00">
<security mode="None"/>
</binding>
</netNamedPipeBinding>
</bindings>
嗨弗拉基米爾,我的問題圍繞的事實,我必須設置baseaddress爲http或https,我有一個端點與wsDualHttpbinding(似乎不支持https)和端點(安全性似乎需要https)的組合。當我將它配置爲https時,運行主機時出現以下錯誤:「無法找到與具有綁定WSDualHttpBinding的端點匹配方案http的基址,註冊的基址地址方案爲[https]。」 –