Today I had to create a web service that allowed another company to send information to us on a regular basis and they requested that they be able to send the information by using an HTTP Post rather than a SOAP request. I created the web service and tested it locally using a simple form and all went smoothly but when I deployed it to our production server, I was not able to perform and HTTP Post to the service. Turns out that be default, ASP.NET web services are only able to be called using an HTTP Post when it is on the local machine.
If you need to enable HTTP Post calls to your web service in a production environment, simply add an entry for HttpPost to the system.web -> webServices -> protocols node of the web.config.
Similarly, if you do not want to support HTTP Post calls, just add a remove entry for HttpPost in the same location.
This change can also made in the machine.config file if you want global results.