我在这里问了一个类似的问题:
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请求?有人试过吗?
谢谢!
答案 0 :(得分:1)
您是否将IIS配置为在应用程序的文件夹中要求SSL? (您可以将其设置为允许ssl或强制执行)
答案 1 :(得分:0)
您始终可以使用完全合格的https地址向服务条目添加显式端点。不记得IIS托管是否总是在你有一个显式地址时自动添加基地址,但即使有,你可以做一个简单的ServiceHostFactory扩展来“吃掉”IIS提供的默认基地址(引用你的自定义servicehostfactory在.svc文件的Factory属性中)。然后它只回答您在配置中提供的确切地址。
答案 2 :(得分:0)
通过配置可以实现。此Blog Article不是您的确切方案(它是通过https进行的文件传输),但它显示了配置和使用应该有用的https Web服务的示例配置和代码。