"Add Service Reference> Discover"作業の最小構成

私は既にWCF + Windowsサービスがテストされており、リモートのdevマシン上でWindowsサービスとして正しく動作しています。 1つを除いて。

デバッグするために、ビルトインの「Add Service Reference」を使用してWCFを(Windowsサービスなしで)ホストしてから、ビジュアルスタジオでホストしました(ホストが呼び出されているかどうかわかりません)。

とにかく、自分のサービスを発見するためにAdd Service Referenceを取得できません。

私はWindoes Servicesを使用しているので、私はTCPのものを使用しています。これは、私が行ったいくつかのことです、すべての私はサービス参照を追加しているwinformsアプリケーションで:

Add Project > Properties > Debug > Command line arguments: /client:"WcfTestClient.exe" but the exe doesn't run.

そして私のApp.Config

<?xml version="1.0"?>

  
    
      
    
    
      
        
      
      
        
      
    
    
      
        
        
      
    
    
      
        
          
          
        
      
    
  

Side note: the ServiceOperation are returning Microsoft.Synchronization.Data.xxx sutff for example SyncContext. I might have to add a reference in the Winforms? Or will the "Add Service Reference" add them for me? The service and contracts are generated by the Local Database Cache template. perhaps not related to the problem.

3

2 答え

投稿後、私は答えを探し続け、これが私が働いていることを実験したものです:

プロジェクトファイル自体。 * .csproj for C#プロジェクトには、Visual Studio用のプロジェクトのチェックを開始するためのWCF用ProjectTypeGuidが含まれている必要があります。

{3D9AD99F-2412-4246-B90B-4EAA41C64699};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}

GUIDの詳細については、 http://www.mztools.com/articles/2008/mz2008017を参照してください。 .aspx 。 (ありがとうmztools!)

WCFプロジェクトは複数のサービスを持つことができ、それぞれの設定はプロジェクトのApp.Configで定義されている必要があります。各サービスは異なるmexエンドポイントアドレスを持つ必要があります。サービスは、serviceMetadata拡張が定義された単一のサービス動作を共有することもできます。 Mexエンドポイントは動作やバインディング設定を必要としません。しかし、IMxエンドポイント契約をIMetadataExhchangeに設定することを忘れないでください。

For TCP mex, the serviceMetadata > HttpGetEnabled must be set to false.

私はこれが最小限の設定だと信じています。

4
追加された

Right click on the service you wish to host on your PC, then right click and go Debug > Start New Instance

その後、他のアプリケーション(私は同じソリューションと仮定)に移動し、それが実行されているURLをコピーします。

上の同じ方法でそれを開始し、ローカルマシン上の両方のプロジェクトをデバッグすることができます。

私はこれがあなたがやろうとしていることだと思います。それが他のものだったら私に知らせてください。

0
追加された
彼はとにかく、私のサービスを発見するためにサービス参照を追加することはできません
追加された 著者 jgauffin,
この方法は、私が持っているdllのうち1つでしか動作しません。 DLLの要件はありますか?たとえば、dllには1つのサービスしか存在できません。それは "クラスライブラリの出力タイプは開始できません..."
追加された 著者 Jake,
@ ggauffin実際に私はどちらか一方を動かすことが両方の仕事をすると思っていました。
追加された 著者 Jake,