12

我正在尝试将带有 WCF 服务的 Silverlight 部署到主机。基本上,我和这个人有同样的问题: How to configure WCF services to work through HTTPS without HTTP binding? 除了解决方案对我不起作用。

//编辑:我一直粘贴错了,但它仍然不起作用。

我已经尝试过 Ladislav Mrnka 的答案 - 在 Web.config 文件中更改了这个:

  <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" />

当我导航到服务器上的 .svc 文件时,仍然会出现可怕的错误:

The HttpsGetEnabled property of ServiceMetadataBehavior is set to true and the
HttpsGetUrl property is a relative address, but there is no https base address.
Either supply an https base address or set HttpsGetUrl to an absolute address.
4

3 回答 3

16

现在应该是正确的,我只是在适当的位置更改了 httpGetEnabled 和 httpsGetEnabled(它已经在配置文件中)。但我仍然得到错误。我应该在某处指定 HttpsGetUrl 吗?在哪里?

是的,看这里

应该:

<behaviors>
 <serviceBehaviors>
  <behavior name="NewBehavior">
    <serviceMetadata httpsGetEnabled="true" 
     httpsGetUrl="https://myComputerName/myEndpoint" />
  </behavior>
 </serviceBehaviors>
</behaviors>
于 2012-06-20T20:47:16.780 回答
0

在配置中,在您设置 httpsGetEnabled="true" 的行为下,也设置 httpsGetUrl="https://UserSystemName/EndPointName" 并解决问题。

<behaviors>
  <serviceBehaviors>
    <behavior name="mexBehaviour">
      <serviceMetadata httpsGetEnabled="true" httpsGetUrl="https:///UserSystemName/EndPointName"/>
    </behavior>
  </serviceBehaviors>
</behaviors>
于 2018-10-04T06:52:39.103 回答
0

发生此错误是因为设置在逻辑上是错误的。如果启用 httpsGetEnabled 方式,则允许客户端通过 https 检索元数据。如果您不提供有关 https 的 URL,客户端如何从 https 检索元数据。因此,错误消息会提醒您提供 URL。

Either supply an https base address or set HttpsGetUrl to an absolute address.

你有三个选择。

  1. 提供 httpsGetUrl 作为上面显示的其他答案
  2. 通过 IIS 绑定地址

绑定 站点绑定

(如果您仍在 Visual Studio 中开发,那么您只需要使用 SSL Enabled 模式进行调试) 启用 SSL

  1. 将 httpsGetEnabled 设置为 false

于 2020-09-07T04:37:39.157 回答