我有一个Silverlight客户端,目前无条件地与WCF服务通信。
1>我想保护WCF服务。(启用https) 2>我想在silverlight客户端中引用安全的wcf服务。
任何人都可以帮忙配置服务吗?
Web.config:
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"></serviceHostingEnvironment>
<bindings>
<basicHttpBinding>
<binding name="MyBasicHttpBinding" >
<security mode="Transport" >
<transport clientCredentialType="None"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<services>
<service behaviorConfiguration="DataService.Service1Behavior"
name="DataService.Service1">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="MyBasicHttpBinding"
contract="DataService.IService1">
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="DataService.Service1Behavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" httpHelpPageEnabled="true" httpsHelpPageEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
我收到以下错误消息:
找不到与绑定BasicHttpBinding绑定端点的方案https匹配的基址。注册的基地址方案是[http]。
答案 0 :(得分:2)
您需要纠正的主要部分是绑定和服务行为,如以下配置中的givn
1)在binding =“basicHttpBinding”的地方使用binding =“ wsHttpBinding ” 2)在绑定位置=“mexHttpBinding”使用binding =“ mexHttpsBinding ” 3)在服务行为服务中元数据 httpsGetEnabled =“true”
您可以在https here
上找到配置WCF的非常简单的步骤答案 1 :(得分:-2)
尝试将baseAddresses部分添加到service元素中:
<services>
<service behaviorConfiguration="DataService.Service1Behavior"
name="DataService.Service1">
<host>
<baseAddresses>
<add baseAddress="https://[your url]"/>
<add baseAddress="http://[your url]"/>
</baseAddresses>
</host>
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="MyBasicHttpBinding"
contract="DataService.IService1">
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>