ASP.NET Webservices have reduced the complexity involved in developing web services, thanks to tools like Visual Studio .NET, Visual Studio 2005 which reduce the over head of manually creating the proxy files and schema.
We can invoke a service by browsing the <ServiceName>.asmx file and trying to invoke the webmethods available, from the local machine.
However, the webservice is a scenario where, usually the service lies on a different machine other than the machine where the application which consumes the service, resides.
If we would like to invoke the service from other machine, by default, it would display the message "The test form is only available for requests from the local machine."
To enable the Service to be invoked from remote machine, we need to add the following settings to the Web.Config file of the Web Service Application.
<system.web>
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
</system.web>
This would enable the Web service to be able to be invoked from remote machine. However, this invoking would work only for simple data types and would not work in the case of complex datatypes.
Similarly, this setting would only be useful in development / testing scenarios and it is advisable to remove / comment the above section when releasing for production, due to security reasons.
This articles applies to both .NET 1.1 as well as .NET 2.0.
Cheers and Happy Web Servicing !!!