you must be wondering about HTTP endpoint, i did too, anyhow HTTP Endpoint means way to create service interface using either HTTP or SOAP or TCP means web service :). Scalar values, errors, messages can be return in searlized XML format. you don’t need of IIS to deploy HTTP Endpoint or you may say sql server 2005 web service. in win 2k3 u may use HTTP.sys module of kernel for that purpose rather than IIS
Lets come to the implementation:
// Create Stored procedure, which we shall use in our web service
use adventureworks // database name
create procedure dbo.GetEmployees //stored proc name
select * from employee; //simplest query
// code for http endpoint/web service
CREATE ENDPOINT GetEmployees
STATE = STARTED
PATH = ‘/Employee’,
AUTHENTICATION = (INTEGRATED),
PORTS = (CLEAR),
SITE = ‘localhost’
BATCHES = DISABLED,
WSDL = DEFAULT,
DATABASE = ‘AdventureWorks’,
NAMESPACE = ‘http://AdventureWorks/Employee’
There we go. We now have a web service! You access and use this endpoint the same way you would any other web service. You can create multiple WEBMETHODs in a single endpoint, just seperate them with commas in the FOR SOAP statement.
Here are the values you can use for the “STATE” argument:
- STARTED—listening and responding
- DISABLED—neither listening nor responding
- STOPPED—listening, but returns errors to client requests
Here are the “AS HTTP” arguments you can use:
- Path – The virtual URL path on the server where the Web service will reside
- INTEGRATED – most secure. It will try to use Kerberos-based authentication if possible (otherwise, NTLM).
- DIGEST is not as secure as INTEGRATED. You should use it only if INTEGRATED authentication is not possible.
- BASIC authentication is the least secure. You should use it only if you can’t implement either INTEGRATED or DIGEST authentication methods. BASIC requires SSL as the Port value.
- Ports – CLEAR (HTTP – port 80 by default) SSL (HTTPS – port 443 by default)
- Site – The name of the server on which the Web service is running
So, now lets put our endpoint to work. First, create a new windows application project, and add a web reference to it. When you browse for the web service, it won’t be discovered automatically. You have to type in the url and click “go”. The url in this case is http://localhost/Employee?wsdl. You’ll see the EmployeeList method come up in the list, just like using any other web service. Go ahead and add the service and rename it to whatever. I called mine “adventureWorksService”.
Now we just add code like using any other webservice. I’ve added a button to click to populate the listbox on my form. So here it is:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
‘ Create a new instance of the web service
Dim employeesProxy As adventureWorksService.GetEmployees = New adventureWorksService.GetEmployees
‘ You have to pass in credentials to authenticate yourself to use the service. We are just going to use
‘ the same credentials we have logged into our computer as.
employeesProxy.Credentials = System.Net.CredentialCache.DefaultCredentials
‘ The result of a SELECT statement via an endpoint can be converted to a DataSet
Dim ds As System.Data.DataSet = DirectCast(employeesProxy.EmployeeList, DataSet)
ListBox1.DataSource = ds.Tables(0)
ListBox1.DisplayMember = “FullName”
ListBox1.ValueMember = “EmployeeId”