OK, this is really, really annoying. You should NOT have to do any config to support the 2 most widely used protocols on the internet, HTTP and HTTPS. Here's the simple, really simple, web.config to support both HTTP and HTTPS. You don't need all the attributes to do it, if you don't specify them, it will use the defaults. So, for simplicity sake, I didn't put them in. This is an example that I couldn't find on google....so here you all go.

<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="http">
                <security mode="None" />
            </binding>
            <binding name="https">
                <security mode="Transport" />
            </binding>
        </basicHttpBinding>
    </bindings>
    <services>
        <service name="ArbitraryNameForYourService">
            <endpoint binding="basicHttpBinding" bindingConfiguration="http" contract="Frakkingsweet.Project.IService" /> <!-- If you don't want http support, remove or comment this -->
            <endpoint binding="basicHttpBinding" bindingConfiguration="https" contract="Frakkingsweet.Project.IService" /> <!-- If you don't want https support, remove or comment this -->
        </service>
    </services>
</system.serviceModel>