Do I need IIS7 to use binary with HTTP for WCF?

No, all you need is a custom binding because we don’t include a standard binding with that configuration out of the box.

Here’s a quick example of putting binary and HTTP together with either code or configuration:

BinaryMessageEncodingBindingElement encoding = new BinaryMessageEncodingBindingElement();
HttpTransportBindingElement transport = new HttpTransportBindingElement();
Binding binding = new CustomBinding(encoding, transport);
<bindings>
<customBinding>
<binding name="BinaryHttpBinding">
<binaryMessageEncoding />
<httpTransport />
</binding>
</customBinding>
</bindings>

You could also make a subclass of Binding if you didn’t want to build a custom binding every time, but no special version of IIS is required.