0

SSL を使用して basicHttpBinding を使用してホストする必要がある WCF サービスがあります。そのため、私のチームは、匿名認証を有効にして、IIS で指定されたハードコードされたユーザー名とパスワードを使用して SSL 証明書をインストールしました。私はこのバインディングを与えてみました

 <binding name="SecurityByTransport">
               <security mode="Transport">
                 <transport clientCredentialType="Windows" />
                </security>
            </binding>   

しかし、それでもうまくいきません。「バインディング BasicHttpBinding を持つエンドポイントのスキーマ http に一致するベース アドレスが見つかりませんでした。登録されたベース アドレス スキームは [https] です。」

ServiceModel セクション:

 <system.serviceModel>
<diagnostics>
  <messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtTransportLevel="true" />
</diagnostics>
<bindings>
  <customBinding>
    <binding name="netTcp">
      <binaryMessageEncoding>
        <readerQuotas maxArrayLength="2147483647" maxStringContentLength="2147483647" maxDepth="64" />
      </binaryMessageEncoding>
      <security authenticationMode="UserNameOverTransport" />
      <windowsStreamSecurity />
      <tcpTransport portSharingEnabled="true" maxBufferPoolSize="52428800" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" />
    </binding>
  </customBinding>

  <basicHttpBinding>
    <binding name="Https">
      <security mode="Transport">

      </security>
    </binding>
  </basicHttpBinding>

</bindings>
<behaviors>
  <serviceBehaviors>
    <behavior name ="Https">

      <serviceMetadata httpsGetEnabled="true"/>

      <serviceDebug includeExceptionDetailInFaults="false"/>
      <serviceCredentials>
        <userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="Asi.Soa.ServiceModelEx.NullUserNamePasswordValidator, Asi.Soa.ServiceModelEx" />
        <clientCertificate>
          <authentication certificateValidationMode="None" />
        </clientCertificate>
      </serviceCredentials>
      <serviceAuthorization principalPermissionMode="Custom">
        <authorizationPolicies>
          <add policyType="Asi.Soa.ServiceModelEx.ClaimsAuthorizationPolicy, Asi.Soa.ServiceModelEx" />
        </authorizationPolicies>
      </serviceAuthorization>
      <exceptionShielding/>
    </behavior>


  </serviceBehaviors>
  <endpointBehaviors>
    <behavior name="SoapBehavior">

    </behavior>
    <behavior name="RestBehavior">

    </behavior>
    <behavior name="AjaxBehavior">
      <enableWebScript />
    </behavior>
  </endpointBehaviors>
</behaviors>
<services>


  <service name="Asi.Soa.Core.Services.EntityService" >
    <endpoint address="https://10.42.150.122/imis15/EntityService.svc" binding="basicHttpBinding" contract="Asi.Soa.Core.ServiceContracts.IEntityService"
       bindingConfiguration="Https" />
  </service>

</services>

どんな助けでも大歓迎です。

ありがとう

4

3 に答える 3

1

サービス動作設定に追加してみてください

      <serviceMetadata httpsGetEnabled="true"/>

また、endpoindに設定があることを確認する必要があります

      bindingConfiguration="SecurityByTransport"
于 2012-06-27T09:00:01.167 に答える
0

IIS でサービスをホストしている場合は、サイト バインディングから http バインディングを削除してみてください。

HTH

于 2012-06-27T12:36:27.007 に答える
0

IIS で Web サービスを使用しているため、SSL 証明書を使用していることを考慮して、HTTPS バインディングを使用します。

于 2012-06-27T16:52:03.357 に答える