2011-01-27 8 views
1

は、私がここでどのようにセットアップWCF Net.Tcpに

IIS 7上でnet.tcpを使用するためのセットアップにWCFサービスをしようとしているでエラーが私が取得:なしエンドポイントのリスニングは

ありませんでした net.tcp://127.0.0.1:8000/ListService で、メッセージを受け入れることができます。これはよく です。間違ったアドレス またはSOAPアクションによって引き起こされることがよくあります。詳細については、 が存在する場合はInnerExceptionを参照してください。

ここでは、私はクライアントから呼び出すコードです:ここでは

using (var client = new ListingServiceClient("NetTcpBinding")) 
{ 
    client.Test(); 
    client.Close(); 
} 

は私のサービスのweb.configファイルである - http://pastebin.com/3S8BZbup

<system.serviceModel> 
    <bindings> 
     <netTcpBinding> 
     <binding portSharingEnabled="true"> 
      <security mode="None" /> 
     </binding> 
     </netTcpBinding> 
    </bindings> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="default"> 
      <serviceMetadata httpGetEnabled="true"/> 
      <serviceDebug includeExceptionDetailInFaults="true"/> 
      <!--throttle service--> 
      <serviceThrottling 
      maxConcurrentCalls="10000" 
      maxConcurrentSessions="10000" 
      maxConcurrentInstances="10000" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <services> 
     <service behaviorConfiguration="default" name="Housters.Services.ListingService"> 
     <endpoint name="TcpEndpoint" 
        address="net.tcp://127.0.0.1:8000/ListingService" 
        binding="netTcpBinding" 
        contract="Housters.Services.IListingService" /> 
     </service> 
    </services> 
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 
    </system.serviceModel> 
    <system.webServer> 
     <modules runAllManagedModulesForAllRequests="true"/> 
    </system.webServer> 

そして、ここに私のクライアントのapp.configをである - http://pastebin.com/YpiAhh46

<system.serviceModel> 
    <bindings> 
     <netTcpBinding> 
     <binding name="NetTcpBinding"> 
      <security mode="None"/> 
     </binding> 
     </netTcpBinding> 
    </bindings> 
    <client> 
     <endpoint 
       address="net.tcp://127.0.0.1:8000/ListingService" 
       binding="netTcpBinding" bindingConfiguration="NetTcpBinding" 
       contract="ListingServiceProxy.IListingService" name="NetTcpBinding" /> 
    </client> 
    </system.serviceModel> 

任意のIDイージー?

+0

また、iis対応プロトコルでnet.tcpを追加し、net.tcp - "8000:*"のバインディングを追加したことにも言及する必要があります。 – Justin

+0

これが問題であるかどうかはわかりませんが、 "TcpEndpoint"の 'endpoint'に' bindingConfiguration'プロパティを設定していないことに気付きました。また、 'netTcpBinding'に' name'がセットされていません。 – vlad

+0

同じコードを探していますか? tcpエンドポイントで、私はbindingConfiguration:bindingConfiguration = "NetTcpBinding"を設定しています。また、netTcpBinding:に名前を設定します。私が誤解している場合は教えてください。 – Justin

答えて

7

この構成は、IIS/WASでは機能しません。 IISでホストする場合、.svcファイル(またはWCF 4の構成ベースのアクティブ化)が必要です。エンドポイントのアドレスは常にVirtualDirectoryPath + SvcFile +エンドポイント構成で指定された相対アドレスです。エンドポイント設定での絶対アドレスの設定は、セルフホスティング用です。

+0

a-HA !!ありがとう! +1 – vlad

+0

VirtualDirectoryPathとは何ですか? – Serge

関連する問題