IIS仅支持HTTPS的Rest

3
我在这里提出了一个类似的问题:如何强制WCF Rest中的一个方法通过https调用,而其他方法可以通过http调用。看起来代码方面不可能实现。是否可以设置整个服务只能通过HTTPS调用?我使用了以下绑定配置服务:
  <webHttpBinding>
    <binding name="webBinding"
     maxBufferSize="152428800" maxReceivedMessageSize="152428800"
     receiveTimeout="00:10:00">
        <readerQuotas maxStringContentLength="152428800"
              maxArrayLength="152428800"
              maxBytesPerRead="4096"/>
        <security mode="Transport">
        <transport clientCredentialType="None" />
        </security>
    </binding>
    </webHttpBinding>

当我尝试通过http调用一个简单的服务时,服务会愉快地返回结果,而不是返回某种异常。我需要配置IIS以仅提供https请求吗?有人尝试过吗?

谢谢!

3个回答

1
你是否配置了IIS以要求在应用程序文件夹上使用SSL?(您可以将其设置为允许SSL或强制执行)

我最终将服务拆分为子文件夹中的“安全”服务,并要求该文件夹上使用SSL。这似乎很有效。 - Mike

0

您可以始终使用完全限定的 https 地址向服务条目添加显式端点。如果记不清 IIS 托管是否总是在有显式地址时自动添加基本地址,但即使它这样做,您也可以创建一个简单的 ServiceHostFactory 扩展来“吞噬” IIS 提供的默认基本地址(在 .svc 文件的 Factory 属性中引用您的自定义 servicehostfactory)。然后它只会在您在配置中提供的确切地址上回答。


0

这是通过配置实现的。这个博客文章并不是你的确切情况(它是通过https传输文件),但它展示了配置和使用https web服务的示例配置和代码,应该会很有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接