1

PC: Windows 8.1 + すべての更新プログラム、VS 2012 + すべての更新プログラム。

テストしたWCFサービスを作成しましたが、動作します。このサービスを Windows Phone 8 アプリケーションに対して使用したいのでbasicHttpBinding、データにアクセスするためにユーザー名とパスワードを受け入れるサービスを作成する必要があります。IIS で正常に実行されるサービスを完了した後に行った手順は次のとおりです。

  1. SSL を作成しました (こちらの手順に従いますhttp://msdn.microsoft.com/en-us/library/hh556232.aspx )
  2. web.configファイルを変更して、次のものが含まれるようにしました。

    <system.serviceModel>
    <services>
      <service behaviorConfiguration="NewBehavior1" name="Service">
        <endpoint address="" binding="basicHttpBinding" contract="IService"     bindingConfiguration="NewBinding1" />
        <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
      </service>
    </services>
    <bindings>
      <basicHttpBinding>
        <binding name="NewBinding1">
          <security mode="TransportWithMessageCredential" />
        </binding>
      </basicHttpBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="MEX">
          <serviceMetadata/>
        </behavior>
        <behavior name="NewBehavior1">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceCredentials>
            <userNameAuthentication userNamePasswordValidationMode="Custom"
          customUserNamePasswordValidatorType="Service, Services" />
          </serviceCredentials>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"     multipleSiteBindingsEnabled="true" />
    

  3. に移動してhttp://localhost/Service/Service.svc、正しい 403.4 メッセージ (SSL なしではアクセスできません) を受け取ったので、 を に置き換えてhttphttpsサービス ページを表示できました。

  4. WCFhttpsテスト クライアント ツールを開いて同じ URL に移動すると、エラーが表示されます (エラーの一部を短縮し、主要な領域に残したことに注意してください)。

    https://localhost/Service/service.svcエラー:アクセスできる Windows (R) Communication Foundation サービスの場合は、メタデータを取得できません。指定されたアドレスでのメタデータ公開が有効になっていることを確認してください。
    メタデータに解決できない参照が含まれています: ' https://localhost/Service/service.svc'。
    権限 'localhost' で SSL/TLS セキュア チャネルの信頼関係を確立できませんでした。
    基になる接続が閉じられました: SSL/TLS セキュア チャネルの信頼関係を確立できませんでした。
    検証手順によると、リモート証明書が無効です。HTTP GET エラー

  5. IIS から証明書をエクスポートし、信頼されたルート証明機関の下のローカル マシンとユーザーにインストールしました。違いはありませんでした

だから今、私が試したことがうまくいかないように見えるので、少し迷っています。誰でもアドバイスできますか?

4

2 に答える 2

0

申し訳ありませんが、完全に間違っている可能性がありますが、次のように動作を構成していることに気付きました。

<behavior name="NewBehavior1">
  <serviceMetadata httpGetEnabled="true"/>
  <serviceCredentials>
    <userNameAuthentication userNamePasswordValidationMode="Custom"
  customUserNamePasswordValidatorType="Service, Services" />
  </serviceCredentials>

https を使用する場合は、次のように構成する必要があると思います。

<serviceMetadata httpsGetEnabled="true"/>enter code here

(サービス メタデータの https が有効)。

試してみますが、残りの構成によっては、100%うまくいくとは限りません

于 2014-02-03T10:50:45.440 に答える