0

私はWCFを初めて使用しますが、Webサービス(ASMXファイル)に少し精通しています。

wcfクライアントの構成エントリについていくつか質問があります

Webサービス(ASMX)プロキシを作成すると、以下のエントリのように構成ファイルに何も追加されませんが、WCFの場合は以下のエントリが追加されます。以下のエントリの重要性を知る必要があります。

1)以下のエントリを削除すると、どうなりますか?クライアント側からサービスを呼び出すことはできませんか?

2)クライアント側からWebサービスを呼び出すときに教えてください。クライアント側に複数のエンドポイントアドレスが追加されている場合、サービスの呼び出しに使用するエンドポイントアドレスをどのように言うのですか?

3)サービスコールを行うときに、cient側からWebサービスのURLを明示的に指定するにはどうすればよいですか?

<system.serviceModel>
    <bindings>
        <wsDualHttpBinding>
            <binding name="WSDualHttpBinding_ICommService" closeTimeout="00:01:00"
                openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:00:05"
                bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
                maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true">
                <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                    maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                <reliableSession ordered="true" inactivityTimeout="00:10:00" />
                <security mode="Message">
                    <message clientCredentialType="Windows" negotiateServiceCredential="true"
                        algorithmSuite="Default" />
                </security>
            </binding>
        </wsDualHttpBinding>
    </bindings>
    <client>
        <endpoint address="http://localhost/CommService/"
            binding="wsDualHttpBinding" bindingConfiguration="WSDualHttpBinding_ICommService"
            contract="Services.ICommService" name="WSDualHttpBinding_ICommService">
            <identity>
                <dns value="localhost" />
            </identity>
        </endpoint>
    </client>
</system.serviceModel>
4

1 に答える 1

1

はい、これらは WCF に必要な重要な構成です。構成ファイルまたはコードを介して提供します。

1)どこかで提供する必要があります。config から取得した場合。コードでそれを行う必要があります。

2) WCF には ABC の基本ルールがあります。住所、拘束力、および契約。繰り返しますが、既に構成ファイルにある場合は何も言う必要はありません。

複数のクライアントの場合。構成ファイルからエンドポイント名を指定することもできます。例えば

MyClient someClientObject = new MyClient("WSDualHttpBinding_ICommService");

3) デフォルトでは、サービス参照操作を追加すると、WCF ランタイムはクライアント側のプロキシを取得します。

このように簡単な方法で行うことができます。パラメータなし。

MySVCClient svcproxy = new MySVCClient ();

サービス契約書に記入する必要があります。コンストラクターで次のように使用することもできます...エンドポイントのアドレスと入札などを使用します。

BasicHttpBinding myBinding= new BasicHttpBinding(SecurityMode.None);   
EndpointAddress endpointAdd= new EndpointAddress("http://localhost/CommService/");
MySVCClient svcproxy = new MySVCClient (myBinding, endpointAdd);

ここではすべてをコードで定義しているためです。設定ファイルには何も必要ありません。

于 2013-02-07T15:12:39.637 に答える