C# WCF-SOAP和REST上的Http和https
我有一个网站,需要能够创建http和https连接。我已经安装了IIS,以便它在SOAP和REST请求上都接受https,这是可行的 我的问题是,没有https的客户可以使用我的网站。如果他们没有,我会删除https的站点绑定: 执行此操作后,访问站点时出现以下异常:“找不到与绑定端点的scheme http匹配的基址” 我的web.config如下所示:C# WCF-SOAP和REST上的Http和https,c#,wcf,rest,soap,C#,Wcf,Rest,Soap,我有一个网站,需要能够创建http和https连接。我已经安装了IIS,以便它在SOAP和REST请求上都接受https,这是可行的 我的问题是,没有https的客户可以使用我的网站。如果他们没有,我会删除https的站点绑定: 执行此操作后,访问站点时出现以下异常:“找不到与绑定端点的scheme http匹配的基址” 我的web.config如下所示: <system.serviceModel> <bindings> <basicHttpBinding
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="basicHttpBinding" messageEncoding="Text">
</binding>
<binding name="basicHttpsBinding" messageEncoding="Text">
<security mode="Transport" />
</binding>
</basicHttpBinding>
<webHttpBinding>
<binding name="webHttpBinding">
</binding>
<binding name="webHttpsBinding">
<security mode="Transport" />
</binding>
</webHttpBinding>
</bindings>
<services>
<service name="XXX.XXX">
<endpoint address="rest" behaviorConfiguration="RestBehavior" binding="webHttpBinding"
bindingConfiguration="webHttpBinding" contract="XXX.IXXX">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="rest" behaviorConfiguration="RestBehavior" binding="webHttpBinding"
bindingConfiguration="webHttpsBinding" contract="XXX.IXXX">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="" behaviorConfiguration="XXXBehavior" binding="basicHttpBinding"
bindingConfiguration="basicHttpBinding" contract="XXX.IXXX">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="" behaviorConfiguration="XXXBehavior" binding="basicHttpBinding"
bindingConfiguration="basicHttpsBinding" contract="XXX.IXXX">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" name="Mex" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="XXXBehavior">
<webHttp/>
</behavior>
<behavior name="RestBehavior">
<webHttp helpEnabled="true" defaultBodyStyle="Bare" defaultOutgoingResponseFormat="Json"
automaticFormatSelectionEnabled="false" faultExceptionEnabled="true" />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
我做错了什么?您正在使用具有传输安全性的绑定配置(
security mode=“transport”
),但随后您将IIS配置为不支持它
如果从IIS中删除HTTPS,则必须从web.config中删除HTTPS端点。您使用的是具有传输安全性的绑定配置(
security mode=“transport”
),但随后您将IIS配置为不支持它
如果从IIS中删除HTTPS,则必须从web.config中删除HTTPS端点。您使用的是具有传输安全性的绑定配置(
security mode=“transport”
),但随后您将IIS配置为不支持它
如果从IIS中删除HTTPS,则必须从web.config中删除HTTPS端点。您使用的是具有传输安全性的绑定配置(
security mode=“transport”
),但随后您将IIS配置为不支持它
如果从IIS中删除HTTPS,则必须从web.config中删除HTTPS端点。什么是“没有HTTPS的客户”?@GlenThomas我正在开发的应用程序可以安装在不同的服务器上,一些客户没有HTTPS证书可供使用。我明白了。他们可以使用自签名证书。如果应用程序需要安全连接,那么总比没有好“没有https的客户”是什么意思?@GlenThomas我正在开发的应用程序可以安装在不同的服务器上,一些客户没有https证书可供使用。我明白了。他们可以使用自签名证书。如果应用程序需要安全连接,那么总比没有好“没有https的客户”是什么意思?@GlenThomas我正在开发的应用程序可以安装在不同的服务器上,一些客户没有https证书可供使用。我明白了。他们可以使用自签名证书。如果应用程序需要安全连接,那么总比没有好“没有https的客户”是什么意思?@GlenThomas我正在开发的应用程序可以安装在不同的服务器上,一些客户没有https证书可供使用。我明白了。他们可以使用自签名证书。如果应用程序需要安全连接,那么总比没有好谢谢你的回答。您知道是否可以配置my web.config,以便在IIS不允许https时保留当前设置但禁用basicHttpsBinding?您可以在代码中生成端点,而不是在web.config中指定它们。这可能是最好的解决方案。谢谢你的回答。您知道是否可以配置my web.config,以便在IIS不允许https时保留当前设置但禁用basicHttpsBinding?您可以在代码中生成端点,而不是在web.config中指定它们。这可能是最好的解决方案。谢谢你的回答。您知道是否可以配置my web.config,以便在IIS不允许https时保留当前设置但禁用basicHttpsBinding?您可以在代码中生成端点,而不是在web.config中指定它们。这可能是最好的解决方案。谢谢你的回答。您知道是否可以配置my web.config,以便在IIS不允许https时保留当前设置但禁用basicHttpsBinding?您可以在代码中生成端点,而不是在web.config中指定它们。这可能是最好的解决办法。