0

net.tcp バインディングを使用して WCF サービスを作成し、サービス参照をコンソール アプリケーションにエラーなしで追加することができました。

これを行った後、コンソールアプリでこのサービスをセルフホストしようとしています。サービスホストが開かれますが、サービス参照オブジェクトを使用してサービスのメソッドを呼び出すと、この例外が発生します

'net.tcp://localhost/Design_Time_Addresses/MyWCFServiceLibrary/Service2/ に接続できませんでした。接続の試行は、00:00:02.0800000 の期間継続しました。TCP エラー コード 10061: ターゲット マシンがアクティブに拒否したため、接続できませんでした [::1]:808.'

これは私のcsファイルコードです

Main method()

 Service2Client sc2 = new Service2Client();
                Uri baseaddress = new Uri("net.tcp://localhost:8732/Design_Time_Addresses/MyWCFServiceLibrary/Service2/");

                ServiceHost serviceHost = new ServiceHost(typeof(Service2Client), baseaddress);

                serviceHost.Open();

                Console.WriteLine(sc2.GetData(124)); --> exception comes at this point

                Console.ReadLine();

これは、コンソール アプリの app.config です。

<system.serviceModel>
    <client>
      <endpoint address="net.tcp://localhost/Design_Time_Addresses/MyWCFServiceLibrary/Service2/"
        binding="netTcpBinding" bindingConfiguration="NetTcpBinding_IService2"
        contract="ServiceReference2.IService2" name="NetTcpBinding_IService2">
        <identity>
          <dns value="localhost" />
        </identity>
      </endpoint>
    </client>
    <bindings>
      <netTcpBinding>
        <binding name="NetTcpBinding_IService2" closeTimeout="00:01:00"
          openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
          transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions"
          hostNameComparisonMode="StrongWildcard" listenBacklog="10" maxBufferPoolSize="524288"
          maxBufferSize="65536" maxConnections="10" maxReceivedMessageSize="65536">
          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
            maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <reliableSession ordered="true" inactivityTimeout="00:10:00"
            enabled="false" />
          <security mode="None">
            <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
            <message clientCredentialType="Windows" />
          </security>
        </binding>
      </netTcpBinding>
    </bindings>
    <!--<client>
      <endpoint address="net.tcp://localhost:8732/Design_Time_Addresses/MyWCFServiceLibrary/Service2/"
        binding="netTcpBinding" bindingConfiguration="NewBinding0" contract="MyWCFServiceLibrary.IService2"
        name="endpointClient" />
      <endpoint address="net.tcp://localhost/Design_Time_Addresses/MyWCFServiceLibrary/Service2/"
        binding="netTcpBinding" bindingConfiguration="NetTcpBinding_IService2"
        contract="ServiceReference2.IService2" name="NetTcpBinding_IService2">
        <identity>
          <dns value="localhost" />
        </identity>
      </endpoint>
    </client>-->
  </system.serviceModel>

環境: Vs2010

誰でもこれについて私を助けてくれませんか。

4

3 に答える 3

2

クライアント構成の URL は次のとおりです。

net.tcp://localhost/Design_Time_Addresses/MyWCFServiceLibrary/Service2/

あなたのサービスがオンになっている間

net.tcp://localhost:8732/Design_Time_Addresses/MyWCFServiceLibrary/Service2/

コンソール アプリ クライアント エンドポイント要素の app.config にポート番号がありません。

于 2012-05-18T14:52:59.897 に答える
2

次の可能性があります。

1)ファイアウォールがリクエストをブロックしています。見てみな。

2)それを確認してください

  • Net.Tcp リスナー アダプター;
  • Net.Tcp ポート共有サービス

実行中 (Windows サービス)

于 2012-05-18T14:08:03.797 に答える