To answer at those question :
We ran some tests and we found out
that when we're adding bindings in
IIS, it doesn't update config file of
our service. That means that we would
need to maintain the configuration in
two different places. It's not logic,
right ?
When you use IIS to host your service, you must configure your App.config file or web.config file to allow IIS to expose some binding, so in your configuration file, you will put all your binding you allow to your wcf service. Http, net.tcp etc...
In your binding you will not specified address, because you will specified those address in IIS directly.
In IIS you must allow the binding available in the advanced settings of your web site. After that you will set new binding for your web site "web service" and add every bindings you want listen, and specify the address.
You will specify the address directly in IIS.
There's an example.
Your configuration file:
<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>
In your IIS advenced setting your will put
http,net.tcp in Enabled Protocols
After that you will go in your binding into IIS. Put your binding for http normaly and add a new binding net.tcp, in the binding configuration put the port and virtual directory like
8001:*
This setting allow all connection into the 8001 port for any virtual directory.
You also must to have the feature "WCF Activation, (Http activation and Non-Http Activation)" installed on your server.