1

WCF サービス ライブラリからクライアント プロキシを生成しようとしています。Windows XP Pro ワークステーションで VS2005、.NET 3.0 を使用しています。WCF サービスは Windows サービスでホストされます。Windows サービスをコンソール アプリケーションとして実行すると、問題は発生しません。そのアドレスに対して svcutil.exe を実行すると、プロキシが生成されます。ただし、そのサービスをリリース モードでコンパイルし、InstallUtil を使用してワークステーションにインストールすると、「エラー: net.tcp://localhost:9090/Service2 からメタデータを取得できません」というエラーが表示されます。これらは、サービスの app.config を使用している設定です

<behaviors>
  <endpointBehaviors>
    <behavior name="Test2">
      <dataContractSerializer maxItemsInObjectGraph="2147483647" />
    </behavior>
  </endpointBehaviors>
  <serviceBehaviors>
    <behavior name="serviceBehaviour">
      <serviceDebug includeExceptionDetailInFaults="true" />
      <serviceMetadata />
      <!--<serviceMetadata httpGetEnabled="true" />-->
      <dataContractSerializer maxItemsInObjectGraph="2147483647" />
    </behavior>
  </serviceBehaviors>
</behaviors>


<bindings>
  <customBinding>
    <binding name="TestBinding2" inactivityTimeout = "00:30:00"  openTimeout="00:30:00"
         receiveTimeout="00:30:00"
         sendTimeout="00:30:00">
      <binaryMessageEncoding />
      <tcpTransport transferMode="StreamedResponse" />

    </binding>
  </customBinding>
</bindings>

4

1 に答える 1

0

暗闇で何枚か撮...

Windows サービスは実行されていますか? さらに、WCF サービスは Windows サービス内で実行されていますか? 私のプロジェクトは、Windows サービスで WCF サービスもホストしています (ここで一般的な手順を確認できます)。Windows サービスを自動的に開始するようにマークしていても、最初は手動で開始する必要があります。おそらく、私が知らない InstallUtil.exe のコマンドライン オプションが、これを実行してくれるのではないでしょうか。しかし重要なのは、Windows サービスまたは内部の WCF サービスが実行されていない場合、明らかに MEX エンドポイントを確認できないということです。

他に気になった点。あなたのエラーは、net.tcp://localhost:9090/Service2 からメタデータを取得できないことを示していますが、コメントに投稿したベース アドレスは net.tcp://localhost:9090/Service_2 を示しています。おそらくこれはタイプ o にすぎませんが、特に add.config が手動で生成されている場合は、すべてのスペルが正しいことを再確認しても問題ありません。

于 2009-03-29T00:42:51.407 に答える