๐ŸŒ ASP.NET Web Services & AJAX
Estimated reading: 3 minutes 372 views

ASP.NET โ€“ Web Services โ€“ Create and Consume XML-Based Services with Ease

Introduction โ€“ What Are Web Services in ASP.NET?

Web services in ASP.NET allow applications to communicate over HTTP using XML messages, enabling interoperability across platforms (Windows, Java, PHP, etc.). ASP.NET makes it easy to create, host, and consume SOAP-based web services using .asmx files.

In this guide, youโ€™ll learn:

  • What ASP.NET web services are and how they work
  • How to create an .asmx web service
  • How to call a service from a web page (client)
  • Key attributes, behaviors, and real-world use cases

What Is a Web Service?

A web service is a server-side component that:

  • Uses HTTP for communication
  • Accepts requests in XML/SOAP
  • Returns results in XML

ASP.NET uses .asmx files to define web services, with methods marked by [WebMethod].


Example โ€“ Creating a Simple ASP.NET Web Service

Step 1: Create HelloWorld.asmx

<%@ WebService Language="C#" Class="HelloWorld" %>

Step 2: Create the Code-Behind File (HelloWorld.cs)

using System.Web.Services;

[WebService(Namespace = "http://tempuri.org/")]
public class HelloWorld : WebService
{
    [WebMethod]
    public string Greet(string name)
    {
        return "Hello, " + name;
    }
}

Explanation:

  • [WebMethod]: Marks the method as remotely callable
  • WebService base class handles HTTP/SOAP protocol
  • You can open HelloWorld.asmx in the browser to test

Browser Output:

Greet โ€“ Returns: “Hello, John” when called with John.


Calling the Web Service from a Client

Step 1: Add Web Reference

In Visual Studio:

  1. Right-click project โ†’ Add Web Reference
  2. Enter URL of the service: http://localhost/HelloWorld.asmx
  3. Click Add Reference

Step 2: Call the Service

protected void Page_Load(object sender, EventArgs e)
{
    HelloWorld.HelloWorldSoap client = new HelloWorld.HelloWorldSoapClient();
    string result = client.Greet("Vaibhav");
    lblResult.Text = result;
}

Output:
Hello, Vaibhav


WebMethod Attributes

AttributePurpose
DescriptionDescribes the method in WSDL
EnableSessionAccess session state in the method
BufferResponseDetermines buffering behavior
CacheDurationCaches method results (in seconds)
[WebMethod(Description = "Greets the user", EnableSession = false)]
public string Greet(string name) { return "Hello " + name; }

Security Considerations

  • Web services by default are publicly accessible
  • Restrict access using authentication headers
  • Avoid exposing sensitive logic or large data
  • Always sanitize inputs

Deployment Tips

  • Deploy .asmx and its code-behind DLL to the server
  • Host within IIS or ASP.NET website
  • Test by accessing the .asmx URL directly

Best Practices for Web Services

Do:

  • Keep methods simple and stateless
  • Return data in a standard format (string, arrays, objects)
  • Add XML documentation for better WSDL clarity

Avoid:

  • Relying on ViewState or Session by default
  • Overloading methods (WSDL won’t support overloads well)
  • Using complex custom types without [Serializable]

Summary โ€“ Recap & Next Steps

ASP.NET Web Services using .asmx files make it easy to expose and consume SOAP-based methods for cross-platform communication. Theyโ€™re ideal for interoperable APIs, integrations, and internal services.

Key Takeaways:

  • Create services using .asmx and [WebMethod]
  • Access services over HTTP via XML/SOAP
  • Call services from client pages or external apps

Real-world Use Cases:

  • Currency conversion APIs
  • Weather or news feeds
  • Internal services for reporting or automation

FAQs โ€“ ASP.NET Web Services


What is the difference between .asmx and WCF or Web API?
.asmx is legacy SOAP service; WCF adds flexibility; Web API uses REST/JSON and is modern.


Can I consume .asmx service in Java or PHP?
Yes. Because it uses standard HTTP and XML, it can be accessed from any language/platform.


How do I debug a web service?
Open the .asmx file in browser or set breakpoints in Visual Studio. Use tools like Postman or SoapUI for manual calls.


Can Web Services maintain session state?
Yes, using [WebMethod(EnableSession=true)], but it’s not recommended due to scalability concerns.


Share Now :
Share

๐Ÿ”Œ ASP.NET โ€“ Web Services

Or Copy Link

CONTENTS
Scroll to Top