IIS仅通过HTTPS休息

时间:2010-02-10 00:07:17

标签: wcf rest https

我在这里问了一个类似的问题:

How to enforce one method in WCF Rest to be called via https, while others can be called over 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 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

通过配置可以实现。此Blog Article不是您的确切方案(它是通过https进行的文件传输),但它显示了配置和使用应该有用的https Web服务的示例配置和代码。