当我尝试运行我的服务时,出现以下错误: “无法通过绑定BasicHttpBinding找到与端点的方案http匹配的基址。注册的基址方案为[https]。”
我的服务声明:
<service name="service" behaviorConfiguration="serviceEndpointBehavior">
<host>
<baseAddresses>
<add baseAddress="https://abc:12704/service"/>
</baseAddresses>
</host>
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="basicHttpBinding2" contract="service"/>
<endpoint address="mex" contract="IMetadataExchange" binding="basicHttpBinding"/>
</service>
结合:
<basicHttpBinding>
<binding name="basicHttpBinding2" maxReceivedMessageSize="1000000">
<readerQuotas maxArrayLength="1000000" maxStringContentLength="1000000"/>
</binding>
</basicHttpBinding>
我还在行为中遵循声明:
<behavior name="serviceEndpointBehavior">
<dataContractSerializer maxItemsInObjectGraph="1000000"/>
<serviceMetadata httpsGetEnabled="true" />
</behavior>
有什么想法吗?
答案 0 :(得分:1)
您定义的绑定是基本的http绑定。您的端点是http,具有增加的安全性(https)。您需要在绑定上定义安全性,否则它们将不匹配。没有任何安全性,您不能拥有https。
你需要找到一个很好的教程或书籍,因为https比配置文件中的一些条目更多。您将需要一个证书,您将需要一个实际执行此操作的Web服务器(提示:Cassini,内部VS网络服务器不会执行任何https ...它只会丢弃它而不会发出任何警告)。