4

我有一个导致以下错误的服务调用:“提供的 URI 方案 'http' 无效;应为 'https'。”

app.config 值:

<basicHttpBinding>
<binding name="xx_xxxxx_spcName" closeTimeout="00:01:00"
              openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
              allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
              maxBufferSize="655360" maxBufferPoolSize="524288" maxReceivedMessageSize="655360"
              messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
              useDefaultWebProxy="true">
          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
              maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <security mode="Transport">
            <transport clientCredentialType="None" />
          </security>
        </binding>
</basicHttpBinding>


<client>
<endpoint address="http://server/serviceaddress_removed" 
                binding="basicHttpBinding" bindingConfiguration="xx_xxxxx_spcName" 
                contract="xx.xx_xxxxx_spcName" name="xx_xxxxx_spcName" />
</client>

我试过 Https:// 但一切都是内部的,所以我不希望我需要这个,此外它还会给出客户端/服务器错误。

我也尝试过更改绑定类型

我还查看了此处和 asp.net 上的其他论坛帖子,所有帖子似乎都指向使用 Transport 并传入我在代码中执行的客户端凭据,如下所示:

client.ClientCredentials.UserName.UserName = "XXXXX";
client.ClientCredentials.UserName.Password = "XXXXX";
4

2 回答 2

13

您必须更改<security mode="Transport">为无。运输力 https。

于 2013-10-10T20:37:32.827 回答
1

如果我记得我的 WCF 配置培训,传输安全特别意味着您正在使用 HTTPS。如果您不使用 HTTPS,您的安全类型应设置为“无”,因为您知道您的消息将是未加密的。

我相信您也可以使用“消息”并手动提供证书,但我之前没有这样做过。

于 2013-03-25T14:50:37.927 回答