17

プロトタイプ サービス用に 3 つのエンドポイントを正常に構成しました。エンドポイントは、basicHttpBinding、wsHttpBinding、および webHttpBinding です。現時点で唯一の不具合は、WCFTestClient にあります。それを自分のサービスに向けると、最初の 2 つがリストされますが、webHttpBinding はリストされません。ブラウザから REST エンドポイントをテストできますが、問題なく動作します。これが私の設定です:

 <system.serviceModel>
    <services>
      <service behaviorConfiguration="serviceBehaviour" name="VMDServices.VMDService">
        <endpoint binding="webHttpBinding"
                  address="rest" behaviorConfiguration="webBehaviour" contract="VMDServices.IService1">
          <identity>
            <dns value="localhost"/>
          </identity>
        </endpoint>
        <endpoint binding="basicHttpBinding"
                  address="basic" bindingConfiguration="basicBinding" contract="VMDServices.IService1">
        </endpoint>
        <endpoint binding="wsHttpBinding"
                  address="ws" bindingConfiguration="wsBinding" contract="VMDServices.IService1">
          <identity>
            <dns value="localhost"/>
          </identity>
        </endpoint>
      </service>
    </services>

    <bindings>
      <basicHttpBinding>
        <binding name="basicBinding" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
          <security mode="None"></security>
          <readerQuotas maxStringContentLength="2147483647"/>
        </binding>
      </basicHttpBinding>
      <wsHttpBinding>
        <binding name="wsBinding" transactionFlow="true">
          <security mode="None"></security>
          <reliableSession enabled="true" ordered="true" />
        </binding>
      </wsHttpBinding>
    </bindings>

    <behaviors>
      <endpointBehaviors>
        <behavior name="webBehaviour">
          <webHttp />
        </behavior>
      </endpointBehaviors>
      <serviceBehaviors>
        <behavior name="serviceBehaviour">
          <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
          <serviceMetadata httpGetEnabled="true"/>
          <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true">
    </serviceHostingEnvironment>
  </system.serviceModel>

WCFTestClient ツールで webHttpEndpoint が表示されない理由はありますか?

乾杯、ダニー。

4

3 に答える 3

23

これは、Web エンドポイント (SOAP エンドポイントとは異なり) がメタデータを公開しないため、テスト クライアントがサービスの WSDL をダウンロードするときにメタデータを認識しないためです。メタデータ (WSDL、MEX) を公開するための明確に定義された形式を持つ SOAP とは異なり、Web (別名 REST) エンドポイントはそうではありません。

それが短編小説です。詳細については、http://blogs.msdn.com/b/carlosfigueira/archive/2012/03/26/mixing-add-service-reference-and-wcf-にブログ投稿を書きました。 web-http-aka-rest-endpoint-does-not-work.aspx

于 2011-09-20T02:59:55.270 に答える
1

以下は、WCF テスト クライアントでサポートされていない機能の一覧です。

• 型: Stream、Message、XmlElement、XmlAttribute、XmlNode、関連する XmlSchemaProviderAttribute 属性を含む IXmlSerializable インターフェイスを実装する型、および XDocument 型と XElement 型、および ADO.NET DataTable 型。

•二重契約。

• 取引。

• セキュリティ: CardSpace 、証明書、およびユーザー名/パスワード。

• バインディング: WSFederationbinding、すべての Context バインディングおよび Https バインディング、WebHttpbinding (Json 応答メッセージのサポート)。

ソース: http://msdn.microsoft.com/en-us/library/bb552364.aspx

于 2012-01-16T09:33:32.183 に答える
-1

メタデータを公開する「mexHttpBinding」エンドポイントを追加してみてください

于 2011-09-20T06:04:57.500 に答える