I need to consume a Web Service. They send me the WSDL file. What should I do to add it to my website and start using it as the proxy. ( If I put it on a Virtual Directory it is been discovered, but does it grants me the connection with the real web service?)
In visual studio.
- Create or open a project.
- Right-click project from solution explorer.
- Select "Add service refernce"
- Paste the address with WSDL you received.
- Click OK.
If no errors, you should be able to see the service reference in the object browser and all related methods.
I would fire up Visual Studio 2008, create a web project (or console app - doesn't matter), and then right-click on the project and pick "Add Service Reference" from the context menu.
Enter the file path and name into the box and import the WSDL - this will generate a simple, very basic WCF client for you to use. You should find a "YourservicenameClient" class in the generated code which should have methods for each of the defined methods on the WSDL contract.
Instantiate the client and call the methods you want to call - that's all there is!
YourServiceClient client = new YourServiceClient();
client.SayHello("World!");
UPDATE:
if you need to specify the remote URL (not using the one created by default), you can easily do this in the constructor of the proxy client:
YourServiceClient client = new YourServiceClient("configName", "remoteURL");
where "configName" is the name of the endpoint to use (you will use all the settings except the URL), and the "remoteURL" is a string representing the URL to connect to (instead of the one contained in the config).
Marc
Use WSDL.EXE utility to generate a Web Service proxy from WSDL.
You'll get a long C# source file that contains a class that looks like this:
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="MyService", Namespace="http://myservice.com/myservice")]
public partial class MyService : System.Web.Services.Protocols.SoapHttpClientProtocol {
...
}
In your client-side, Web-service-consuming code:
- instantiate MyService.
- set its Url property
- invoke Web methods