0

私は wcf を学んでいるので、よく質問が頭に浮かびます。最近、小さな電卓 wcf サービスを開発しました。私は3つのプロジェクトを持っていました.1つはサービス契約を持ち、もう1つはサービスをホストするメインクラスを持つwcfサービスを持っています。app.configファイルで、エンドポイント アドレス net.tcp://localhost:5555/Calculatorを指定 しました。サービス URL の最後にサービス クラス名を指定する必要があると常に考えていました。私のアプリでは、私のサービス URL は上記のようになり、Calculatorは私のサービス クラス名です。

ほんの数日前、私は wcf コードを閲覧していて、サービス クラス名がchatsrvであることがわかりましたが、サービス URL はnet.tcp://localhost:5555/chatのようになります

i like to know that can i give any name to my service at the end?

1)もしそうなら、セルフホストコードはどのURLサービスを開始する必要があるかをどのように理解できますか?

2) false を設定した場合<serviceMetadata httpGetEnabled="false"/>、サービスを設定して自己ホストしているため、他のクライアントがどのようにサービスを消費するかhttpGetEnabled="false"、他の .net プロジェクトから、チャネル ファクトリによってそのサービスを消費し、参照を追加できますか? httpGetEnabled="true"false が正常に機能する場合、何を設定する必要があるか教えてください。

httpGetEnabled="false"mexエンドポイントが他のクライアントに公開されない場合、他のクライアントがサービス参照のプロジェクトへの参照を追加できない可能性があることを私が知っていることは何でも。私は新しいので、内部のサービスが苦手です。可能であれば、詳細に議論してください。

3) クライアントが mex エンドポイントなしでチャネル ファクトリを介してサービス関数をインスタンス化して呼び出すことができる場合、なぜ mex エンドポイントが必要なのですか? なぜ、いつ mex エンドポイントが必要になるのですか?

ありがとう

アップデート

1) エンドポイント アドレスとして任意の URL を指定できますか? このnet.tcp://localhost:5555/chatをエンドポイント アドレスとして指定しましたが、これは機能しますが、 net.tcp://localhost:5555/Mychatのようなエンドポイント アドレスを指定すると機能しますか?

エンドポイント アドレスの URL を指定する規則を教えてください。

2) mex エンドポイントについて。私のサービス構成ファイルでは、mex を無効にしていますが、どのクライアントもnet.tcp://localhost:5555/chat/mexのような参照を追加できることがわかりました。

mexが無効になっている場合、mexポイントはクライアントの前に公開またはアクセスできません...私は正しいですか?

私を導いてください。ありがとう

4

2 に答える 2

0

サービスのエンドポイントを定義した構成ファイルでプロキシを構成するときに自動的に追加されるため、以下の行をコメントアウトします。

<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

確認したい場合は、サービス プロキシを追加したサービス プロキシを右クリックし、[Configure Service Reference] を選択すると、最後にサービスの URL に /mex が追加されていることがわかります。

于 2016-04-20T16:59:31.820 に答える