それらの質問に答えるには:
いくつかのテストを実行したところ、IIS でバインドを追加するときに、サービスの構成ファイルが更新されないことがわかりました。つまり、2 つの異なる場所で構成を維持する必要があります。理屈じゃないですよね?
IIS を使用してサービスをホストする場合、App.config ファイルまたは web.config ファイルを構成して、IIS が何らかのバインディングを公開できるようにする必要があります。そのため、構成ファイルでは、許可するすべてのバインディングを wcf サービスに配置します。Http、net.tcp など...
IIS でこれらのアドレスを直接指定するため、バインドではアドレスを指定しません。
IIS では、Web サイトの詳細設定で利用可能なバインドを許可する必要があります。その後、Web サイトの「Web サービス」に新しいバインドを設定し、リッスンするすべてのバインドを追加して、アドレスを指定します。
アドレスは IIS で直接指定します。
例があります。
構成ファイル:
<services>
<service name="ServiceName">
<endpoint address=""
binding="basicHttpBinding"
bindingConfiguration="httpMode"
contract="IContract" />
<endpoint address=""
binding="netTcpBinding"
contract="IContract" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
IIS の高度な設定では、
有効なプロトコルの http,net.tcp
その後、IIS にバインドします。http のバインディングを正常に配置し、新しいバインディング net.tcp を追加します。バインディング構成で、ポートと仮想ディレクトリを次のように配置します。
8001:*
この設定により、仮想ディレクトリの 8001 ポートへのすべての接続が許可されます。
また、サーバーに「WCF アクティベーション (HTTP アクティベーションおよび非 HTTP アクティベーション)」機能をインストールする必要があります。