Introduction:
Generally we consume web services in web application, but there may be a need
to call a web service in another web service application. As we know, a web application
can consume more than one web service (here). In this article I am describing
a simple way of calling a web service application in another web service
application. A web service application can also call another web service. Here I
will create two simple web services and will call one from another.
At first we create a web service application. Follow the given steps.
- Go to Visual Studio 2010 and create a New
Project
- Select an ASP.NET Web Service Application
- Give it a name and click ok button
Replace the code by the code given below:
using System;
using
System.Collections.Generic;
using
System.Linq;
using System.Web;
using
System.Web.Services;
namespace
firstservice
{
///
<summary>
/// Summary
description for Service1
///
</summary>
[WebService(Namespace =
"http://tempuri.org/")]
[WebServiceBinding(ConformsTo =
WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from
script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class
Service1 : System.Web.Services.WebService
{
[WebMethod]
public string
show()
{
return
"Method from first web service";
}
}
}Run this
service application. Now create another ASP.NET Web Service Application (As above) and follow the given steps.
- Go to Solution Explorer and right click at
your project.
- Select Add Service Reference. A new window will be
open.
- Click at "Advance" button ( Given in Above
figure.). A new window will open.
- Click at "Add Web Reference" button.
- Copy the URL of first (Which has created at first) web service and paste it at the URL. Look at below screen - shot.
- Click the Go button.
- You can set Web reference name. the default name is
"localhost". Click Add reference.
Now a web reference has added into your web service
application. Now replace the code with the following code.
using
System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
namespace secondwebservice
{
///
<summary>
/// Summary
description for Service1
///
</summary>
[WebService(Namespace =
"http://tempuri.org/")]
[WebServiceBinding(ConformsTo =
WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from
script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class
Service1 : System.Web.Services.WebService
{
[WebMethod(Description="Method
of running web service")]
public string
show()
{
return
"Method from second web service";
}
[WebMethod(Description="Method
of called web service")]
public string
display()
{
localhost.Service1 obj =
new localhost.Service1();
return obj.show();
}
}
}
Run the service.
Output:
Click at display ( method ) to go to test page and click the "invoke"
button.
Repeat the same for calling "show" method.