質問

サーバーの1つでWindowsサービスのWCFサービスをホストしています。 basicHttpBindingで動作させ、.NETでテストクライアントを構築した後(最終的に動作しました)、SoapClientクラスを使用してPHPからアクセスしようとしました。最終消費者はPHPサイトになるため、PHPで消費できるようにする必要があります。

PHPコードのSoapClientクラスのコンストラクターにWSDLのURLを入力する必要があるときに困惑しました。 WSDLはどこにありますか?私が持っているのは:

http://172.27.7.123:8000/WordService および http://172.27.7.123:8000/WordService/mex

これらのいずれもWSDLを公開しません。

WCFの初心者であるために、物の言えないことを尋ねたかもしれません(またはどこかで間違った仮定をしているかもしれません)。優しくしてください:D

いいえ、 http://172.27.7.123:8000/WordService?wsdl http://172.27.7.123:8000/WordService :(

とは異なるものを表示する

IISでホストすることを強制されていますか?通常のWebServiceの使用を強制されますか?

役に立ちましたか?

解決

これは役立つかもしれません:

http://msdn.microsoft.com/en-us/library /ms734765.aspx

簡単に言うと、サービスのエンドポイントと動作を設定する必要があります。最小限の例を次に示します。

<system.serviceModel>
  <services>

    <service 
      <!-- Namespace.ServiceClass implementation -->
      name="WcfService1.Service1" 

      <!-- User behaviour defined below -->
      behaviorConfiguration="SimpleServiceBehaviour"> 

      <endpoint 
        address="" 
        binding="basicHttpBinding"
        <!-- Namespace.Interface that defines our service contract -->
        contract="WcfService1.IService1"/>

    </service>
  </services>
  <behaviors>
    <serviceBehaviors>
      <behavior name="SimpleServiceBehaviour">

        <serviceMetadata 
          <!-- We allow HTTP GET -->
          httpGetEnabled="true" 

          <!-- Conform to WS-Policy 1.5 when generating metadata -->
          policyVersion="Policy15"/>

      </behavior>
    </serviceBehaviors>
  </behaviors>
</system.serviceModel>

XMLコメントは、場所が無効であるため削除することを忘れないでください。

他のヒント

このリンクをご覧ください:

複数のバインディングとエンドポイントを使用したWCFサービスの公開

Unlike previous ASMX services, the WSDL (web service definition language) for WCF 
services is not automatically generated.  The previous image even tells us that 
"Metadata publishing for this service is currently disabled.".  
This is because we haven't configured our service to expose any meta data about it. 
 To expose a WSDL for a service we need to configure our service to provide meta information.  Note:  
The mexHttpBinding is also used to share meta information about a service.  While 
the name isn't very "gump" it stands for Meta Data Exchange.
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top