测试 WCF 服务时,IIS 中存在问题。 我们有一个服务,HTTP运行没有问题,比如说在端口8060上(仅示例(。
当我们在端口 8553 上添加 IIS HTTPS 时(再次仅示例(并关联到我们得到的证书时,我们收到错误
已关联绑定实例以侦听 URI "http://:8060/.svc"。如果两个端点需要 若要共享相同的 ListenUri,它们还必须共享相同的绑定 对象实例。指定了两个冲突的终结点 在 AddServiceEndpoint(( 调用中、在配置文件中或 AddServiceEndpoint(( 和 config。
Web.config
中的终结点如下所示:
<service name="<name of service>" behaviorConfiguration="DefaultBehaviorConfig">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="basicHTTPBindingConfig" contract="<interface name>">
</endpoint>
</service>
是bindingConfiguration
吗?
将协议绑定更改为wsHttpBinding
HTTPS 将打开。
此问题主要源于服务终结点地址具有相同的相对地址。请仔细检查所有端点,防止所有端点没有相同的相对地址,例如,以下配置可能会导致此错误。
<services>
<service name="WcfService1.Service1">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="mybinding" contract="WcfService1.IService1"></endpoint>
<endpoint address="" binding="mexHttpBinding" contract="IMetadataExchange"></endpoint>
</service>
</services>
请发布完整的配置文件(系统.服务模型部分(,我会给你一个有效的答复。
如果有什么我可以帮忙的,请随时告诉我。
更新。
<system.serviceModel>
<services>
<service name="WcfService1.Service1">
<endpoint address="" binding="basicHttpBinding" contract="WcfService1.IService1"></endpoint>
<endpoint address="" binding="basicHttpBinding" contract="WcfService1.IService1" bindingConfiguration="https"></endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"></endpoint>
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="https">
<security mode="Transport">
<transport clientCredentialType="None"></transport>
</security>
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
我们还可以使用协议映射来简化此配置。
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="https">
<security mode="Transport">
<transport clientCredentialType="None"></transport>
</security>
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
<protocolMapping>
<add scheme="https" binding="basicHttpBinding" bindingConfiguration="https"/>
<add scheme="http" binding="basicHttpBinding"/>
</protocolMapping>