2

http で正常に動作する新しい WCF セキュリティ トークン サービスをビジュアル スタジオで作成しました。httpsで実行するように構成しようとしています。IIS のディレクトリ セキュリティを SSL を要求するように変更しました。

予想どおり、http 経由でサービスを参照すると、「ページは安全なチャネルで表示する必要があります」というメッセージが表示されます。ただし、https 経由でサービスを参照すると、「バインディング WS2007HttpBinding を持つエンドポイントのスキーム http に一致するベース アドレスが見つかりませんでした。登録されているベース アドレス スキームは [https] です。」というエラーが表示されます。

私は見落とした web.config ファイルに構成があるに違いないと仮定していますが、それが何であるかはよくわかりません。この問題の助けは素晴らしいでしょう。

私の web.config ファイルは以下の通りです。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

  <appSettings>
    <add key="IssuerName" value="ActiveSTS"/>
    <add key="SigningCertificateName" value="CN=STSTestCert"/>
    <add key="EncryptingCertificateName" value="CN=DefaultApplicationCertificate"/>
  </appSettings>

  <connectionStrings />

  <location path="FederationMetadata">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>

  <system.web>
    <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add assembly="Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      </assemblies>
    </compilation>
    <authentication mode="None"/>
    <pages>
      <controls>
        <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      </controls>
    </pages>
  </system.web>

  <system.web.extensions>
    <scripting>
      <webServices>
          <authenticationService enabled="true" requireSSL = "true"/>
      </webServices>
    </scripting>
  </system.web.extensions>

  <system.serviceModel>
    <services>
      <service name="Microsoft.IdentityModel.Protocols.WSTrust.WSTrustServiceContract" behaviorConfiguration="ServiceBehavior">
        <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
        <endpoint address="IWSTrust13" binding="ws2007HttpBinding" contract="Microsoft.IdentityModel.Protocols.WSTrust.IWSTrust13SyncContract"  bindingConfiguration="ws2007HttpBindingConfiguration"/>
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost/DemoSTS/Service.svc" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <bindings>
      <ws2007HttpBinding>
        <binding name="ws2007HttpBindingConfiguration">
          <security mode="Message">
            <message establishSecurityContext="false" />
          </security>
        </binding>
      </ws2007HttpBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="ServiceBehavior">
          <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>
4

1 に答える 1

0

追加の https ベース アドレスを追加します。

IIS を介してホストしている場合は、SSL を構成し、https チャネルに適切な証明書を割り当てる必要があります。

于 2012-12-28T09:56:28.450 に答える