1

簡単な問題:

クライアント プロジェクトで netTcpBinding サービスを自己ホストする方法 [サービス参照] > [サービス参照の追加...] を右クリックします。

[検出] をクリックすると、netTcpBinding を含む WsHttpBinding を使用するすべてのサービスが参照されます。しかし、netTcpBinding を展開すると、コントラクトに移動できず、次のエラーがスローされます。

MetadataExchangeTcpBinding をバインディングするエンドポイントのスキーム net.tcp に一致するベース アドレスが見つかりませんでした。登録されているベース アドレス スキームは [http] です。

次の .Net WCF のサンプルは非常に優れたものであることがわかりましたが、この例では、構成ファイルがどのように設定されているか、およびウィザードを介してプロキシを取得する方法が示されていません。

C:\WF_WCF_Samples\WCF\Basic\Binding\Net\Tcp\Default\CS

これがサービス構成ファイルです...(私はベースアドレスを使用していません。それがなくても動作するはずです)

   <service behaviorConfiguration="Canopus.WebServices.LogAndNotificationService"
    name="Canopus.WebServices.LogAndNotificationService">      
    <endpoint address="" binding="netTcpBinding"
     contract="Canopus.WebServices.ILogAndNotificationService" />
    <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" />
   </service>

        <behaviors>
            <serviceBehaviors>
                <behavior name="Canopus.WebServices.LogAndNotificationService">
                    <serviceMetadata httpGetEnabled="true" />
                    <serviceDebug includeExceptionDetailInFaults="true" />
                </behavior>
            </serviceBehaviors>
        </behaviors>

ご協力いただきありがとうございます !

4

1 に答える 1

0

あなたがnetTcPBindingを扱っているとき、あなたのサービスの振る舞いはhttpGetEnabled属性を持つことができないと思います。また、エンドポイントのアドレスに http:// のようなものが含まれているように見えますが、これは net.tcp:// である必要があります。

于 2013-04-23T19:36:35.623 に答える