私はWCFの世界で非常に新しいです。コードをダウンロードして wcf サービスの構成ファイルを見たのですが、知識が不足しているため、WCF サービスの構成ファイルのエントリに関して頭の中で混乱が生じています。
ここに私の質問があります
1)<service name="WCFService.Service"
サービス名が必要な場合 サービス名を省略できますか。省略できる場合、どのような問題が発生する可能性がありますか?
2) abc.xyz のような任意の名前をサービス名に設定できますか、またはサービス名を割り当てるためのルールはありますか?
3) ベースアドレスの用途は何ですか? ベースアドレスを省略すると、何が問題になる可能性がありますか。ベース アドレスが必要な場合、以下の構成エントリによると、2 つのベース アドレスがあります...なぜ 2 つのベース アドレスが必要なのか。人々がより多くのベースアドレスを与えるとき? 以下の 2 つのベース アドレスを見て、人々が 2 つのベース アドレスを指定する理由を教えてください。
4) 2 つのエンドポイントがあり、1 つは tcp で、もう 1 つは mex です。mex ベースアドレスを省略すると、サービスが検出されなくなりますか? はいの場合、VS IDE または svcutil から誰もプロキシを作成できないことを意味します....私は正しいです。
5) mex エンドポイントが削除される場合、サービスと対話する方法....他の方法が必要です。もしそうなら、クライアントエンドとしてサービスとやり取りする方法を教えてください。
6)
上記の mex エンドポイントを見て、mex エンドポイントの URL を次のように記述できるか教えてください。
**net.tcp://localhost:1645/MyServer/mex** instead of ChatServer ??
実際には、ChatServer という名前の win フォーム プロジェクトでホストされている wcf サービスです。これが、url がnet.tcp://localhost:1645/ChatServer/mex になる理由ですか?
私は何度も人々がmexエンドポイントを書いているのを見てきましたが、ここではmexエンドポイントのアドレスタグにURLが割り当てられていません....なぜですか? 上記のようにmexエンドポイントを書く必要がある場合...例を挙げて説明してください。
7) /mex.... の意味は何ですか? net.tcp://localhost:1645/ChatServer/mex /mex は必須で、mex は固定語ですか?
8) tcp エンドポイントが表示されるようになりました
tcp エンドポイント アドレスには URL がなく、tcp という単語がアドレス プロパティに割り当てられています...なぜですか?
TCPエンドポイントのアドレスフィールドに有効なURLを割り当てることはできませんか??
9) tcp エンドポイントのアドレス フィールドには、規則または慣習により、常に「tcp」と呼ばれる固定語が含まれます。
10) wsdualhttp バインディングと呼ばれる別のエンドポイントを追加する必要がある場合は、構成ファイルに何を書き込む必要があるか
11) IIS でホストされるサービスを開発しているが、クライアントが別の asp.net Web アプリであり、アプリを獲得できる場合、彼/彼女は何をする必要があるとしますか? 次に、VS ide からプロキシを作成するためにクライアントが使用する URL は何ですか? 誰でもサンプル構成エントリを入手できますか。
12) 人々が 2 つの URL を使用して私のサービスのプロキシを作成できるようにしたい場合の構成ファイルの書き方.... /localhost:1645/ChatServer/message.svc
私の質問が非常に基本的なものであることはわかっていますが、それでもこれらの質問を並べ替えることができません。また、構成ファイルのエントリを大胆に作成するための強力な知識を得る方法を教えてください。
私のサービスの正しい構成エントリを作成するツールはありますか....開発者に代わってそれを行う自動化されたアプリはありますか。ありがとう
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
<service name="WCFService.Service" behaviorConfiguration="behaviorConfig">
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:1645/ChatServer/"/>
<add baseAddress="http://localhost:1648/ChatServer/"/>
</baseAddresses>
</host>
<endpoint address="tcp"
binding="netTcpBinding"
bindingConfiguration="tcpBinding"
contract="ChatService.IChat"/>
<endpoint address="net.tcp://localhost:1645/ChatServer/mex"
binding="mexTcpBinding"
contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="behaviorConfig">
<serviceMetadata httpGetEnabled="true" httpGetUrl=""/>
<serviceDebug includeExceptionDetailInFaults="true"/>
<serviceThrottling maxConcurrentCalls="100" maxConcurrentSessions="100"/>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<netTcpBinding>
<binding name="tcpBinding"
maxBufferSize="67108864"
maxReceivedMessageSize="67108864"
maxBufferPoolSize="67108864"
transferMode="Buffered"
closeTimeout="00:00:10"
openTimeout="00:00:10"
receiveTimeout="00:20:00"
sendTimeout="00:01:00"
maxConnections="100">
<security mode="None">
</security>
<readerQuotas maxArrayLength="67108864"
maxBytesPerRead="67108864"
maxStringContentLength="67108864"/>
<reliableSession enabled="true" inactivityTimeout="00:20:00"/>
</binding>
</netTcpBinding>
</bindings>
</system.serviceModel>
</configuration>
MY 編集部分 ここから開始
3)あなたが話している共通部分は何ですか。私の完全な構成ファイルで見た共通部分は何ですか...例を挙げて説明してください。
とおっしゃっていました....ベースアドレスを省略した場合、毎回共通部分を複数回指定する必要があります。複数のトランスポート プロトコルに対してエンドポイントが指定されている場合は、複数のベース アドレスが必要です。
ポイント3のあなたの答えを読んだ後、私には明確ではないものがあるため、ベースアドレスを省略するためにあなたが言ったことを例で理解してもらえますか
4) mex エンドポイントを無効にした場合、svcutil で wsdl を作成するにはどうすればよいですか? サービス dll を渡すと、クライアントはコードをデコードし、完全なソース コードを取得できます。
12) サービスを利用するための 2 つの URL を公開すると、asp.net クライアントはnet.tcp://localhost:1645/ChatServer/mexのような tcp URL を使用してサービス プロキシを作成できます?? TCPバインディングを使用するためのWebクライアントに問題はありますか。tcp は完全な状態ですが、web はステートレスなので、tcp バインディング url net.tcp://localhost:1645/ChatServer/mexを使用するための web クライアントに問題があるかどうかを尋ねているのはそのためです。
13) 私の例では、mex エンドポイントは次のようになります
しかし、多くの人が次のような mex エンドポイントを作成します
2つのmexエンドポイントの違いを教えてください....また、いつ1ts mexエンドポイントに行くべきか、いつ人々が2番目のmexエンドポイントに行くべきか教えてください
14) 私の場合、 mex end のように書くとしたら
およびtcpエンドポイントのような
では、結果はどうなるでしょう。私のサービスは発見可能かどうか。その場合、サービスプロキシを作成するためにどのアドレスを使用する必要がありますか。
私はWCFに非常に慣れていないので、可能であれば、簡単に理解できるようにミニサンプルで私の質問に答えてください....ありがとう