2009-03-28 14 views
1

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

<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> 

+0

設定の "system.serviceModel"セクション全体と、Windowsサービスの起動に使用しているコードを投稿できますか? –

+0

<サービスbehaviorConfiguration = "serviceBehaviour" 名前= "WCFServiceLibrary3.service2"> klone

+0

<エンドポイントバインディング= "mexTcpBinding" 名前= "TCP_Mex" 契約= "IMetadataExchange" /> = "customBinding" bindingConfiguration = "TestBinding2" 名前= "TestBinding2を" 結合 <エンドポイントアドレス= "MEX" contract = "WCFServiceLibrary3.IService2" behaviorConfiguration = "Test2" /> – klone

答えて

0

暗闇の中でショットのカップルのためのapp.configを使用しています設定されています...

Windowsサービスは動作していますか?それ以外では、WCFサービスはWindowsサービス内で実行されていますか?私のプロジェクトでは、WindowsサービスでWCFサービスもホストしています(一般的な手順はhereです)。自動的に起動するようにWindowsサービスが設定されていても、手動で起動する必要があります。おそらくInstallUtil.exeのコマンドラインオプションがありますが、これは私にはわからないものです。しかし、要点は、WindowsサービスまたはWCFサービスが実行されていない場合は、明らかにMEXエンドポイントが表示されないことです。

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